Microsoft Excel

Herbers Excel/VBA-Archiv

Kopieren von 5 stelligen Ziffern | Herbers Excel-Forum


Betrifft: Kopieren von 5 stelligen Ziffern von: Jules
Geschrieben am: 30.07.2012 14:45:41

Hallo,

ich habe ein Problem. Ich basteln schon eine Weile rum, aber irgendwie funktioniert nichts.
Daher bräuchte ich Hilfe :D

Und zwar habe ich eine Exceldatei in der in Spalte F jeweils 3 Nummern stehen, jedoch mit Komma getrennt und auch immer mit Bezeichnung (z.B. 12345 ProduktA, 23456 ProduktB, 78912 ProduktC).
Ich möchte nun mit einem Programm jede einzelne Ziffer ohne Beschreibung ans Ende von Spalte D kopieren. In welche Zelle ist wurscht, soll nur anfangen bei der letzten beschriebenen Zeile, damit in Spalte D nichts überschrieben wird.

Habe es mit regulären Ausdrücken probiert, aber das klappt leider gar nicht.

Wäre für jeden Tip dankbar :)

  

Betrifft: Beispielmappe!? owT von: Rudi Maintaire
Geschrieben am: 30.07.2012 15:20:10




  

Betrifft: AW: Kopieren von 5 stelligen Ziffern von: fcs
Geschrieben am: 30.07.2012 15:40:07

Hallo Jules,

eine Formellösung ist möglich, aber da aus 1 Zeile immer 3 Zeilen werden sollen ist es sehr mühsehlig, den Zeilenbezug beim kopieren der Formeln korrekt zu halten.

Nachfolgend eine Lösung per Makro.

Gruß
Franz

Sub SpalteF_aufloesen()
  Dim wks As Worksheet, Zeile_F As Long, Zeile_D As Long
  Dim arrF As Variant, arrF2 As Variant, intF As Integer
  Set wks = ActiveSheet
  With wks
    Zeile_D = .Cells(.Rows.Count, 4).End(xlUp).Row
    For Zeile_F = 1 To .Cells(.Rows.Count, 6).End(xlUp).Row
      arrF = Split(Trim(.Cells(Zeile_F, 6).Text), ",")
      For intF = LBound(arrF) To UBound(arrF)
        arrF2 = Split(Trim(arrF(intF)), " ")
        Zeile_D = Zeile_D + 1
        .Cells(Zeile_D, 4).Value = Val(Trim(arrF2(0)))
'        .Cells(Zeile_D, 4).Value = "'" & Trim(arrF2(0)) 'alternativ, wenn _
                                führende Nullen ggf. erhalten bleiben sollen
      Next
    Next Zeile_F
  End With
End Sub



  

Betrifft: AW: Kopieren von 5 stelligen Ziffern von: Jules
Geschrieben am: 30.07.2012 16:32:04

Hallo Franz,

das scheint zu funktionieren.
Ich muss das jetzt mal ausgiebig testen.

Schon mal vielen, vielen Dank!
Kannst du mir vielleicht trotzdem sagen warum meine regulären Ausdrücke nicht klappen?
Muss ich da irgendwas aktivieren bei Excel? Bin etwas aus der Übung mit VBA, aber bin mir sicher, dass es vor einiger Zeit immer ohne Probleme funktioniert hat.

Viele Grüße,
Jules


  

Betrifft: AW: Kopieren von 5 stelligen Ziffern von: fcs
Geschrieben am: 30.07.2012 17:08:51

Hallo Jules,

warum deine regulären Formeln nicht funktionieren weiss ich nicht, denn ich kenne sie nicht.

Auf die schnelle hab ich die folgenden 3 Formeln gebastelt.
Diese sind untereinander in einer Spalte aber nicht kopierfähig. Nebeneinander in einer Zeile schon.

=WERT(LINKS(F2;SUCHEN(" ";F2;1)-1))
=WERT(LINKS(TEIL(F2;SUCHEN(", ";F2;1)+2;100);SUCHEN(" ";TEIL(F2;SUCHEN(", ";F2;1)+2;100);1)-1))
=WERT(LINKS(RECHTS(F2;LÄNGE(F2)-SUCHEN(", ";F2;SUCHEN(", ";F2;1)+3)-1);
  SUCHEN(" ";RECHTS(F2;LÄNGE(F2)-SUCHEN(", ";F2;SUCHEN(", ";F2;1)+3)-1))-1))
Evtl. geht es ja auch einfacher. Da der Ausdruck aber immer 2 mal geteilt werden muss (1. am Komma, 2. am Leerziechen) wird es halt schwierig.

Gruß
Franz


  

Betrifft: AW: Kopieren von 5 stelligen Ziffern von: Jules
Geschrieben am: 30.07.2012 17:34:50

Also das Programm vorher scheint super zu funktioniert :)
Habe noch eine kleine Frage :D
Und zwar brauche ich das Programm 1 mal die Woche, wenn ich eine neue CSV Datei runterlade, daher hätte ich gerne einen Button/Schaltfläche, der/die an Excel gebunden ist und nicht an ein Dokument, ist das überhaupt möglich?

Ich weiß wie ich Schaltflächen erstelle und Buttons programmiere, aber wollte die bisher noch nie global verwenden.

Liebe Grüße


  

Betrifft: benutze die Personl.xls ;-) owT von: Matthias L
Geschrieben am: 30.07.2012 17:38:19




Beiträge aus den Excel-Beispielen zum Thema "Kopieren von 5 stelligen Ziffern"