Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
592to596
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
592to596
592to596
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA Lösung gesucht

VBA Lösung gesucht
04.04.2005 09:45:10
Josef
Hallo!
Ich habe in Datensätzen immer an der 21 bis 22 Stelle zwei Zahlen stehen.
Entweder 01, 02 oder 03
Ich möchte nun mittels VBA z.B. die Anzahl aller 03 in eine TextBox einer Userform einlesen lassen. In diesem Fall 00003 mit Vornullen.
40237449401042400009014020000010
40237449401042400010023043260391
4023744940104240001103D000000001
4023744940104240001203L00000712
4023744940104240001303L00002912
Gäbe es hier bitte eine Lösung dafür?
Danke
Josef

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Lösung gesucht
04.04.2005 10:04:30
Hajo_Zi
Hallo Josef,
Option Explicit

Sub Zaehlen()
Dim StWert()
Dim InI As Integer
Dim InWert As Integer
StWert = Array("40237449401042400009014020000010", "40237449401042400010023043260391", _
"4023744940104240001103D000000001", "4023744940104240001203L00000712", _
"4023744940104240001303L00002912")
For InI = 0 To UBound(StWert)
InWert = InWert + CInt(CStr(Mid(StWert(InI), 21, 2)) = "03") * -1
Next
MsgBox InWert
End Sub

Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Home SP2 und Excel Version 2003 SP1.


Anzeige
AW: VBA Lösung gesucht
04.04.2005 10:21:09
Josef
Hallo Hajo!
Wie immer Danke für Deine schnelle Antwort und Deine Lösung.
Dazu hätte ich noch eine Frage:
Zu dem Array ("40237449401042400009014020000010", "40237449401042400010023043260391", _
"4023744940104240001103D000000001", "4023744940104240001203L00000712", _
"4023744940104240001303L00002912")

Diese Zahlen waren nur ein Beispielmuster.
Diese Zahlengruppe kann jedesmal eine andere sein. Das einzige was immer gleich wäre,die Stelle21 bis 22 wäre 03.
Josef
AW: VBA Lösung gesucht
04.04.2005 10:29:10
Hajo_Zi
Hallo Josef,
irgendwie hast Du Deine Frage vergessen?
Ich habe es jetzt mit Array gemacht das nußt Du natürlich Deinen Bedingungen (Zellen, Textboxen, .... ) anpassen.
Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
Anzeige
AW: VBA Lösung gesucht
04.04.2005 10:50:35
Josef
Hallo Hajo!
Tut mir leid. Mein Fehler.
Diese Zahlen waren nur ein Beispielmuster.
Diese Zahlengruppe kann jedesmal eine andere sein. Das einzige was immer gleich wäre,die Stelle 21 bis 22 wäre 03.
Das Ergebnis sollte in einer Userform in einer Textbox eingetragen werden.Also hätte ich viermal 03, dann müßte das Ergebnis 00004 heißen.
Josef
AW: VBA Lösung gesucht
04.04.2005 10:55:11
Hajo_Zi
Hallo Josef,
das ist ein schöner Beitrag, aber keine neue Information. Ändere die Zeile
MsgBox Format(InWert, "00000")
Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
Anzeige
AW: VBA Lösung gesucht
04.04.2005 10:55:14
Josef
Hallo nochmals!
Wäre das ungefähr so richtig?
StWert = Range("a65536").End(xlUp).Offset(1, 0).Value = Textbox1.Text
Josef
AW: VBA Lösung gesucht
04.04.2005 11:02:05
Josef
Hallo!
Habe jetzt das Makro ausgeführt. Bekomme die Fehlermeldung :
Keine Zuweisung an Datenfeld möglich und und STWert = wird markiert.
Das Makro kopierte ich in ein normales Modul und wechselte die Zeile MSGBox... aus.
Josef
AW: VBA Lösung gesucht
04.04.2005 11:10:39
Josef
Das Makro funkioniert jetzt.
Ich änderte Dim StWert() auf
Dim StWert As Variant
und das Ergebnis war 03
Josef
AW: VBA Lösung gesucht
04.04.2005 11:24:09
Josef
Hallo!
Ich versuchte dieses Makro und erhielt folgende Fehlermeldungmeldung:
Index außerhalb des gültigen Bereiches und die Zeile
InWert = InWert + CInt(CStr(Mid(StWert(InI), 21, 2)) = "03") * -1
wird markiert.

Sub Zaehlen()
Dim StWert As Variant
Dim InI As Integer
Dim InWert As Integer
StWert = Range("A1:A100")
For InI = 0 To UBound(StWert)
InWert = InWert + CInt(CStr(Mid(StWert(InI), 21, 2)) = "03") * -1
Next
MsgBox Format(InWert, "00000")
End Sub

Josef
Anzeige
AW: VBA Lösung gesucht
04.04.2005 11:26:33
Hajo_Zi
Hallo Josef,
Du hast das Array nicht richtig definiert.
Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
AW: VBA Lösung gesucht
04.04.2005 11:31:22
Josef
Hallo Hajo!
Jetzt habe ich es so probiert:
StWert = Array("A1:A1000")
Das Ergebnis ware aber jetzt nur 00000.
Also mache ich praktisch noch immer beim Array etwas falsch nehme ich mal an,
Josef
AW: VBA Lösung gesucht
04.04.2005 11:59:18
Josef
Hallo Ceyser!
Danke für Deine Beispielmappe. Das ist die Lösung.
Herzlichen Dank noch
Josef
Anzeige
oder so:
04.04.2005 12:20:23
IngoG
Hallo Josef,
so gehts auch
Gruß Ingo

Sub aaaa()
MsgBox Format(WorksheetFunction.CountIf(Range("a1:a1000"), "?03*"), "00000")
End Sub

AW: oder so:
05.04.2005 06:18:16
Josef
Hallo Ingo!
Danke für Deine Antwort und Deinen Lösungsvorschlag.
Josef
Danke für die Rückmeldung oT
05.04.2005 08:54:39
IngoG
.
AW: VBA Lösung gesucht
04.04.2005 11:39:46
Hajo_Zi
Hallo Josef,
es ist schon eine Leistung das Du 8 Beiträge brauchst um mitzuteilen das die Werte in der Tabelle stehen!
Option Explicit

Sub Zaehlen()
'    Dim StWert()
Dim InI As Integer
Dim InWert As Integer
'    StWert = Array("40237449401042400009014020000010", "40237449401042400010023043260391", _
'        "4023744940104240001103D000000001", "4023744940104240001203L00000712", _
'        "4023744940104240001303L00002912")
For InI = 1 To 1000
InWert = InWert + CInt(CStr(Mid(Cells(InI, 1), 21, 2)) = "03") * -1
Next
MsgBox Format(InWert, "00000")
End Sub

Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
Anzeige
AW: VBA Lösung gesucht
04.04.2005 11:56:49
Josef
Hallo Hajo!
Ich bin halt leider immer noch ein Laie auf diesem Gebiet.Tut mir leid. Werde mich bessern, bin ja noch lernfähig.
Auf jeden Fall Danke für Deine Mühe.
Schönen Tag noch
Josef

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige