Zum Inhalt springen

Excel und VB - Daten duplizieren


Darkjedi

Empfohlene Beiträge

Hallo,

ich möchte mit dem VB-Editor unter Excel etwas schreiben, daß mir bestimmte Datensätze dupliziert.

Beispiel:

Zelle A2: 00004683

Zelle A3: 00005555

Jetzt sollen nur(!) bei den Datensätzen die auf 5555 enden die 4 vorangehenden Nullen abgeschnitten werden. Frage: Wie kann ich diese 4 Nullen abschneiden??

Link zu diesem Kommentar
Auf anderen Seiten teilen

hi,

ich hoffe, dich nicht falsch verstanden zu haben? du möchtest führende nullen entfernen:

Private Const MY_CHANGE_VALUE = 5555    ' oder welcher wert auch sonst al kriterium dienen mag


Public Function doChange(ByVal s As String)

    Dim ret As String

    Dim ltest As Long

    ret = s

    On Error Resume Next

    ltest = CLng(s)      'in einen long umwandeln, löscht die führenden nullen

    If (Err.Number = 0) And (ltest = MY_CHANGE_VALUE) Then

        ret = CStr(ltest)     'dies liefert den long-wert wieder als string 

    End If

    Call Err.Clear

    On Error GoTo 0

    doChange = ret

End Function

sollte das ergebnis liefern.

hth...

Link zu diesem Kommentar
Auf anderen Seiten teilen

For Zaehler2 = 1 To 347

Zeichenkette = Worksheets(2).Range("A" & Zaehler2).Value

Zeichenkette = Left(Zeichenkette, 32)

Zeichenkette = Right(Zeichenkette, 5)

Worksheets(2).Range("B" & Zaehler2).Value) = Zeichenkette

Next Zaehler 2

Wichtig! Dieser Code gibt mir die gewünschte Zeichenkette aus in der 2. Tabelle einer EXcelmappe. Allerdings gibt er vorausgehende Nullen nicht aus, d.h. wenn die Zeichenkette die bspw. in B2 geschrieben werden soll 005678 ist, gibt mir EXcel nur 5678 aus in B2. Funktionieren tut es nur (mit Ausgabe der Nullen), wenn ich das Format der Zellen vor dem Ausführen auf "Text" setze. Wie kann ich das besser umsetzen???

Link zu diesem Kommentar
Auf anderen Seiten teilen

Letztes Problem habe ich gelöst. Aber weiteres Problem:

For Zaehler = 1 To 347

Zeichenkette = Worksheets(2).Range("A" & Zaehler).Value

Zeichenkette = Left(Zeichenkette, 32)

Zeichenkette = Right(Zeichenkette, 5)

Worksheets(2).Range("B" & Zaehler).Value = Zeichenkette

Selection.NumberFormat = "@"

Worksheets(2).Range("B" & Zaehler).Value = Zeichenkette

Divident = Zeichenkette

Quotient = Divident / 2 <--------------------------Fehlermeldung

Worksheets(2).Range("C" & Zaehler).Value = Quotient

Next Zaehler

Die Zeichenkette (bspw. 6556) die in Spalte B steht soll halbiert werden und in Spalte C geschrieben werden. Allerdings wird beim Ausführen an markierter Stelle eine Fehlermeldung ausgegeben, und zwar: Laufzeitfehler 13: Typen unverträglich.

Ich denke es liegt daran, das "Zeichenkette" ein String ist und, dividiert durch 2 als String ausgegeben werden soll.

Wie kann ich einen String in einen Integer-Wert konvertieren???

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...