Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1368to1372
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Variable übergeben

Variable übergeben
08.07.2014 16:26:23
ExcelGuru

Hallo Provis, ich habe mal wieder eine Frage:
Ich habe ein Makro ( ) und dort ein For next schleife mit i, nun wird in diesem Makro ein Test aus mit der Spalte 5 verglichen und dessen Zeile als c übergebn.
Nun gibt es manchmal einen Fehler, sprich der Text wurde nicht gefunden. Dann kommt ein FehlerMakro zum Einsatz.
Wie kann ich i übergeben. i ist die Aktuelle Zeile.
Hoffentlich habe ichs gut beschrieben?
Gruß ExcelGuru

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variable übergeben
08.07.2014 16:30:04
ExcelGuru
Ach nochwas:
wie kann ich z.B. die 0en bei 1000 zählen?

0 bei 100 zählen ? - Ersetze 0 durch ""
08.07.2014 16:43:26
NoNet
Moin Guru,
gleich noch eine (VBA?)-Frage hinterher... ?
So kann man die Anzahl eines Zeichens in einem String ermitteln (ausführliche Version) :
Sub ZeichenZaehlen()
Dim strText As String, strZeichen As String
strText = "1000"
strZeichen = "0"
MsgBox AnzahlZeicheninText(strText, strZeichen)
End Sub
Public Function AnzahlZeicheninText(strText, strZeichen)
Dim lngAnzahl As Long, strText As String, strZeichen As String
strText = "1000"
strZeichen = "0"
AnzahlZeicheninText = Len(strText) - Len(Replace(strText, strZeichen, ""))
End Function
Gruß, NoNet
   - 1:2

Anzeige
AW: 0 bei 100 zählen ? - Ersetze 0 durch ""
08.07.2014 17:32:03
ExcelGuru
Hallo NoNet
Was Ihr nicht alles wisst. is ja super.
Aber ich habe die Frage Falsch gestellt. Ich suche nicht alle 0en sondern nur die von hinten her.
z.B. Bei 1000 = 3
Bei 10100 = 2
Das ist doch sicher ein klacks für dich.

klacks ? - Klacks() !
08.07.2014 17:39:19
NoNet
Hi Guru,
war doch nur 'n Klacks() :
Public Function klacks(strtext, strzeichen)
Dim lngA As Long
While Mid(StrReverse(strtext), lngA + 1, 1) = strzeichen
lngA = lngA + 1
Wend
klacks = lngA
End Function
Salut, NoNet

AW: klacks ? - Klacks() !
09.07.2014 09:21:46
ExcelGuru
Hallo NoNet,
wie funktioniert das?
Wo stehen die Daten.
Gruß ExcelGuru

Anzeige
AW: klacks ? - Klacks() !
09.07.2014 09:52:40
ExcelGuru
Frage gelöst.

AW: 0 bei 100 zählen ? - Ersetze 0 durch ""
09.07.2014 09:49:46
ExcelGuru
Guten Morgen,
Funktioniert super.
nun eine Weitere Herausforderung.
ich habe ja nun klacks (=2), ich möchte nun, das B0100 so umgebaut wird, das B0000 herauskommt.
Ich habe das Makro mal so umgestaltet:
Public Function klacks(strText, strZeichen)
Dim lngA As Long
strText = Range("A3")
While Mid(StrReverse(strText), lngA + 1, 1) = strZeichen
lngA = lngA + 1
Wend
klacks = lngA
End Function

Sub ZeichenZaehlen()
Dim strText As String, strZeichen As String
strText = Range("A3") ' B0100
strZeichen = "0"
'MsgBox klacks(strText, strZeichen)
Range("B3") = klacks(strText, strZeichen)
End Sub
Danke schon mal. Vielleicht kannst du mir das kurz erklären.
Gruß ExcelGuru 1:7

Anzeige
AW: 0 bei 100 zählen ? - Ersetze 0 durch ""
09.07.2014 10:10:39
ExcelGuru

Public Function klacks(strText, strZeichen)
Dim lngA As Long
strText = Range("A3")
While Mid(StrReverse(strText), lngA + 1, 1) = strZeichen
lngA = lngA + 1
Wend
klacks = lngA
End Function

Sub ZeichenZaehlen()
Dim strText As String, strZeichen As String
strText = Range("A3")
strZeichen = "0"
ZeichenL = klacks(strText, strZeichen) + 1
'MsgBox klacks(strText, strZeichen)
Range("B3") = klacks(strText, strZeichen)
Range("D3") = Left(Range("A3"), 6 - ZeichenL)
Range("E3") = Left(Range("A3"), 6 - ZeichenL) & "0000"
End Sub

Anzeige
AW: 0 bei 100 zählen ? - Ersetze 0 durch ""
09.07.2014 10:52:06
ExcelGuru
Hallo, sicher kann mir bei diesem Problem jemand weiterhelfen.
Ich habe mehrere Zeilen und die länge soll auf 6 Zeichenbegrenzt werden.
Public Function klacks(strText, strZeichen)
Dim lngA As Long
'Dim zeile As Integer
zeile = 4
strText = Cells(zeile, 1)
While Mid(StrReverse(strText), lngA + 1, 1) = strZeichen
lngA = lngA + 1
Wend
klacks = lngA
'zeile = zeile + 1
End Function
Sub ZeichenZaehlen()
Dim strText As String, strZeichen As String
Dim zeile, spalte As Integer
spalte = 3
zeile = 4
strText = Cells(zeile, 1)
strZeichen = "0"
'MsgBox klacks(strText, strZeichen)
Cells(zeile, 2) = klacks(strText, strZeichen)
ZeichenL = klacks(strText, strZeichen) + 1
Cells(zeile, 3) = Left(Cells(zeile, 1), 7 - ZeichenL)
'Cells(zeile, 4) = Left(Range("A3"), 6 - ZeichenL) & "0000"
While Cells(zeile, spalte).Value <> ""
Cells(zeile, 5).Value = Cells(zeile, spalte).Value & "000000"
zeile = zeile + 1
Wend
End Sub

Anzeige
Text auffüllen mit 0
09.07.2014 11:22:44
ExcelGuru
Hallo, ich habe einen Text (z.B B010100 oder B100000). Dann werden die 0en von hinten her gezählt (00=2, 000000=5).
Dann wird die nächste Stelle entfernt und nun soll der Rest (B0, B) mit 0en aufgefüllt werden. So dass dann B010000 und B000000 herauskommt. Gesamtlänge 7Stellen.
Außerdem soll das Makro über mehrere Zeilen laufen.
Soweit bin ich schon gekommen.

Public Function klacks(strText, strZeichen)
Dim lngA As Long
'Dim zeile As Integer
zeile = 3
strText = Cells(zeile, 1)
While Mid(StrReverse(strText), lngA + 1, 1) = strZeichen
lngA = lngA + 1
Wend
klacks = lngA
'zeile = zeile + 1
End Function
Sub ZeichenZaehlen()
Dim strText As String, strZeichen As String
Dim zeile, spalte As Integer
spalte = 3
zeile = 3
strText = Cells(zeile, 1)
strZeichen = "0"
ZeichenL = klacks(strText, strZeichen) + 1
'MsgBox klacks(strText, strZeichen)
Cells(zeile, 2) = klacks(strText, strZeichen)
Cells(zeile, 3) = Left(Cells(zeile, 1), 6 - ZeichenL)
'Cells(zeile, 4) = Left(Range("A3"), 6 - ZeichenL) & "0000"
While Cells(zeile, spalte).Value <> ""
Cells(zeile, 5).Value = Cells(zeile, spalte).Value & "000000"
zeile = zeile + 1
Wend
End Sub

Gruß ExcelGuru

Anzeige
AW: Text auffüllen mit 0
09.07.2014 13:23:09
Rudi Maintaire
Hallo,
ziemlich wirr.
Ich denke so:
Sub ZeichenZaehlen()
Dim strText As String
Dim zeile As Long, spalte As Integer, ZeichenL As Integer
Const strZeichen As String = "0"
spalte = 3
zeile = 3
While Cells(zeile, 1) <> ""
strText = Cells(zeile, 1)
ZeichenL = klacks(strText, strZeichen) + 1
Cells(zeile, 2) = ZeichenL - 1
Cells(zeile, 3) = Left(strText, 7 - ZeichenL)
Cells(zeile, 5).Value = Left(Cells(zeile, spalte) & "000000", 7)
zeile = zeile + 1
Wend
End Sub

Gruß
Rudi

AW: Text auffüllen mit 0
09.07.2014 15:31:28
ExcelGuru
Kästchen vergessen

VBA: Variable von Makro an Makro übergeben
08.07.2014 16:37:48
NoNet
Hallo ExcelGuru,
auch wenn es eine schlechte Beschreibung war, habe ich anhand dessen, was ich verstanden habe, mal ein exemplarisches Beispiel gebastelt :
Sub MeinMakro()
Dim i As Long, c As Range
On Error Resume Next
For i = 1 To 10
Set c = Columns(5).Find(Cells(i, 1))
If c Is Nothing Then
FehlerMakro i
Else
MsgBox "Text " & Cells(i, 1) & " gefunden in" & vbLf & vbLf & c.Address
End If
Next
On Error GoTo 0
End Sub

Sub FehlerMakro(lngZ)
MsgBox "Text aus Zeile " & lngZ & " nicht in Spalte 5 gefunden !", vbCritical, "Fehler"
End Sub
Salut, NoNet
   - 1:2

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige