Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Excel und VB - Daten duplizieren

Empfohlene Antworten

Veröffentlicht

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??

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...

Vielen Dank

Die Konvertierung in einen Long Wert schneidet also doe führenden Nullen ab, was aber wenn ich andere Zeichen abschneiden will (Zahlen, oder auch Leerzeichen)?

hi,

dann ist es einfacher: du musst ja nur die letzten vier zeichen vergleichen. dazu kannst du

Right(dein_string, 4)

benutzen. wenn dieser ausdruck dann "5555" liefert, gibst du einfach "5555" (oder sonstwas) zurück.

hth...

Noch eine Frage: Gibt es in VB die Möglichkeit Platzhalter zu nutzen? Konkret: Ich habe eine Zeichenkette

4342163 6732 736246 8888888888 875834

Wäre solch eine Bedingung so (oder ähnlich) möglich:

IF Zeichenkette = *8888888888* THEN

...

END IF

????

hi,

instr(start, string1, string2) liefert dir die position von string2 innerhalb von string1.

dazu am besten die msdn befragen...

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???

vor den numerischen value einer zelle ein einfaches hochkomma einfügen

worksheet.Range("A1").Value = "'" & dein_string

erledigt das gleiche

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???

mit CINT("String") oder CLNG("String")

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.