konto usunięte
- 1
- 2
konto usunięte
Temat: Dzielenie przez zero bez jeżeli
napisz sobie funkcję i obsłuż błąd w VBAWojciech Gardziński
konto usunięte
Temat: Dzielenie przez zero bez jeżeli
Wojtek, to nie to samojak zrobisz sumę z tak ukrytą wartością będziesz miał bobola
konto usunięte
Temat: Dzielenie przez zero bez jeżeli
Przemysław R.:
napisz sobie funkcję i obsłuż błąd w VBA
Panie, to się wie, ale maksymalnie ograniczam vba.
konto usunięte
Temat: Dzielenie przez zero bez jeżeli
Wojciech Gardziński:
formatowanie warunkowe
formuła ISERORR(A1) i czcionka na biało
A jak tło jest szare ?
konto usunięte
Temat: Dzielenie przez zero bez jeżeli
Henryk Kutypera:
Przemysław R.:
napisz sobie funkcję i obsłuż błąd w VBA
Panie, to się wie, ale maksymalnie ograniczam vba.
no to dłubiesz w formułach, inaczej się nie da
konto usunięte
Temat: Dzielenie przez zero bez jeżeli
Dobhra, wiem.Zrobie makro odpalające się przy sejwie np. zmieniające na sztywno kolor czcionki na kolor tła. Wolę takie jednorazowe odpalenie niż wykorzystywanie funkcji vba w arkuszu.
Dzięks za pomysły.
Wojciech Gardziński
Mariusz
Jankowski
Programista
Excel/VBA
Temat: Dzielenie przez zero bez jeżeli
Panie Henryku ;-),Jak już Pan se zamieni kolor czcionki na kolor tła, to można też jakoś wyróżnić, te komórki z błędami np. poprzez wstawienie komentarza do nich np:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim rngUsedSpace As Excel.Range
Dim rngCell As Excel.Range
Const sTEXT_MESSAGE As String = "W tej komórce znajduje się błąd (dzielenie przez 0)"
On Error GoTo Error_Handler
Set rngUsedSpace = Arkusz1.Range("A1").SpecialCells(Type:=xlFormulas, Value:=xlErrors)
For Each rngCell In rngUsedSpace
With rngCell
If .Text = "#DZIEL/0!" Then
If .Interior.ColorIndex = xlColorIndexNone Then
.Font.ColorIndex = 2
Else
.Font.ColorIndex = .Interior.ColorIndex
End If
If .Comment Is Nothing Then
.AddComment Text:=sTEXT_MESSAGE
End If
End If
End With
Next rngCell
Error_Exit:
Set rngUsedSpace = Nothing
Set rngCell = Nothing
Exit Sub
Error_Handler:
MsgBox "Wystąpił błąd nr " & Err.Number & vbTab & vbCr & _
"Makro zostanie przerwane!", _
vbCritical, _
"Błąd"
Resume Error_Exit
End Sub
konto usunięte
Temat: Dzielenie przez zero bez jeżeli
Panie Mariuszu;)tylko że wtedy będę miał nadziubdziane komentarzy a tu właśnie chodzi o estetykę.
Mariusz
Jankowski
Programista
Excel/VBA
Temat: Dzielenie przez zero bez jeżeli
Henryk Kutypera:
Panie Mariuszu;)
tylko że wtedy będę miał nadziubdziane komentarzy a tu właśnie chodzi o estetykę.
No to w takim wypadku polecam WYSZUKAJ.PIONOWO ;-).
konto usunięte
Temat: Dzielenie przez zero bez jeżeli
Henryk Kutypera:
Przemysław R.:
napisz sobie funkcję i obsłuż błąd w VBA
Panie, to się wie, ale maksymalnie ograniczam vba.
Heniek, a co Ci się stało, że ograniczasz VBA?
Za dużo mięcha wpierdzielasz chyba ;->
konto usunięte
Temat: Dzielenie przez zero bez jeżeli
Paweł K.:
Henryk Kutypera:
Przemysław R.:
napisz sobie funkcję i obsłuż błąd w VBA
Panie, to się wie, ale maksymalnie ograniczam vba.
Heniek, a co Ci się stało, że ograniczasz VBA?
Za dużo mięcha wpierdzielasz chyba ;->
Zawsze taką filozofię wyznawałem.
Funkcje visualowe raz że są wolniejsze dwa że nie masz listy argumentów jak wpisujesz.
konto usunięte
Temat: Dzielenie przez zero bez jeżeli
Henryk Kutypera:
Zawsze taką filozofię wyznawałem.
Funkcje visualowe raz że są wolniejsze dwa że nie masz listy argumentów jak wpisujesz.
to trzeba napisać w .NET - DLL z obsługą COM
działa zadziwiająco szybko
konto usunięte
Temat: Dzielenie przez zero bez jeżeli
A dobre to jest ? W sensie wierzę że szybko działa, ale wygodne w użyciu ? Jak to działa, robisz referencję do dlla ? A jak to rozrzucać użytkownikom ?Tomek Kuchta Księgowy, xyz
Temat: Dzielenie przez zero bez jeżeli
Visual Basic .NEThttp://support.microsoft.com/kb/302896
Visual Basic 6
http://support.microsoft.com/kb/238228/
http://www.cpearson.com/excel/CreatingCOMAddIn.aspx
w VB6
- Otwierasz nowy ActiveX DLL
- Zakładka: Project/References
+ Microsoft Add-In Designer
+ Mictosoft Excel ##.0 Object Library
- w oknie Properties nadajesz projektowi swoją nazwę MojDll
- dodajesz nowy Moduł class i nadajesz mu nazwę (jw.) cFunkcje
- w kodzie tej class'y
Option Explicit
Implements IDTExtensibility2
Private xlApp As Excel.Application
Private Sub IDTExtensibility2_OnConnection(ByVal Application As Object, _
ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, _
ByVal AddInInst As Object, _
custom() As Variant)
Set xlApp = Application
End Sub
Private Sub IDTExtensibility2_OnDisconnection(ByVal RemoveMode As AddInDesignerObjects.ext_DisconnectMode, _
custom() As Variant)
Set xlApp = Nothing
End Sub
Private Sub IDTExtensibility2_OnStartupComplete(custom() As Variant)
'Komentarz, aby VB nie usunął metody
End Sub
Private Sub IDTExtensibility2_OnBeginShutdown(custom() As Variant)
'Komentarz, aby VB nie usunął metody
End Sub
Private Sub IDTExtensibility2_OnAddInsUpdate(custom() As Variant)
'Komentarz, aby VB nie usunął metody
End Sub
Public Function JeżeliBłąd(odwołanie As Variant, _
Optional vArg As Variant = vbNullString)
xlApp.Volatile ' chociaż nie wydaje mi się to konieczne w tej funkcji
JeżeliBłąd = IIf(IsError(odwołanie), vArg, odwołanie)
End Function
- zakładka: File/ Make Mojdll.dll
W Excelu: (E2007)
- Przycisk Office / Opcje programu Excel / Dodatki / (na dole) Przejdź
- Przycisk: Automatyzacja / znajdź: Mojdll.cFunkcje / OK
- Karta Formuły / wstaw funkcję / wybierz Kategorię: MojDll.cFunkcje ..
W VBA
- albo przez wczesne wiązanie: VBE/Tools/References ...
- albo przez późne wiązanie np:
Sub test()
Dim cls As Object
Set cls = CreateObject("MojDll.cFunkcje")
Debug.Print cls.JeżeliBłąd(15 / 2, "byk")
Set cls = Nothing
End Sub
http://chomikuj.pl/tkuchta1/Dokumenty/MojDll.dll
Wojciech Gardziński
Michał
Zacierka
Junior Demand
Planning Manager
Temat: Dzielenie przez zero bez jeżeli
jak sie nie lubi IF() i chce sie uniknąć VBA, oraz chce sie zachowac mozliwosc sumowania i nie ma nic przeciwko finezji cepa to- zakladajac dzielna w A1, dzielnik w B1
zaleznie od tego jak sie ma zachowywac w przypadku 0 w B1
* jesli ma zwracać dzielną (tak jak przy dzieleniu przez jeden) to
=A1*(B1-ABS(SIGN(B1))+1)^-1
*jesli ma zwracać zero
=ABS(SIGN(B1))*A1*(B1-ABS(SIGN(B1))+1)^-1
sliczne i przejrzyste :) chłe chłe
konto usunięte
Temat: Dzielenie przez zero bez jeżeli
Tomek Kuchta:
w VB6
- Otwierasz nowy ActiveX DLL
- Zakładka: Project/References
+ Microsoft Add-In Designer
+ Mictosoft Excel ##.0 Object Library
- w oknie Properties nadajesz projektowi swoją nazwę MojDll
- dodajesz nowy Moduł class i nadajesz mu nazwę (jw.) cFunkcje
- w kodzie tej class'y
robienie z tego dodatku to lekka przesada, wystarczy zwykły dll
osoba średnio zaawansowana może mieć problem z ideologicznym pojęciem tworzenia kopii obiektu Excel-a
- 1
- 2
Podobne tematy
-
Excel » ŚREDNIA Z KILKU KOMÓREK, Z KTÓRYCH NIEKTÓRE MOGĄ ZWRACAĆ... -
-
Excel » TRIK - jak w warunku JEŻELI sprawdzić powyżej 7 przypadków? -
-
Excel » Jeżeli komórka jest równa wartości z listy wskaż wartość... -
-
Excel » Licz jeżeli - zliczanie tylko kolejnych z rzędu komórek... -
-
Excel » Drukuj dany Arkusz jeżeli spełniony jest warunek -
-
Excel » zmienianie wartości komórki bez kasowania formuł -
-
Excel » Zero zamiast pustej komórki -
-
Excel » Formuła =jeżeli z procentem jak zapisać -
-
Excel » Funkcja jeżeli. -
-
Excel » Suma.Jeżeli + Fragment.tekstu -
Następna dyskusja: