Microsoft Excel

Herbers Excel/VBA-Archiv

Makro Zelleninhalte kopieren und einfügen

Betrifft: Makro Zelleninhalte kopieren und einfügen von: KGB
Geschrieben am: 28.07.2008 13:31:16

Hallo

ich habe rund 70 Seiten mit Messwerten eingescannt, als *.doc / *.rtf gespeichert und anschließend in Excel kopiert. Hat soweit alles funktioniert ... Aber ... Werte, die noch 2 Stellen hinter dem Komma haben(hier ist es ein Punkt), werden in zwei Spalten nebeneinander dargestellt.
Mein Makro "Kopiere den Wert aus B5 hinter den Wert in A5, aus B6 in A6 (u.s.w)" hat soweit funktioniert - aber nur für diese eine Seite, da er die exakten Werte aus den Zellen in das Makro übernommen hat. M. E. müsste er nicht den exakten Wert, sondern den Inhalt kopieren bzw. ausschneiden, so dass alle 70 Seiten mit diesem einen Makro funktionieren.

Da aus diesen Werten ein Diagramm gemacht werden soll, brauchte ich auch noch ein Makro, welches die Werte von "untereinander" nach "nebeneinander" stellt.

Für Eure Hilfe danke ich Euch schon jetzt.

Lieben Gruß
KGB

  

Betrifft: AW: Makro Zelleninhalte kopieren und einfügen von: Holger
Geschrieben am: 28.07.2008 14:43:54

Hallo KGB,
wahrscheinlich musst du das Makro an deine Bedürfnisse noch etwas anpassen

Sub ws_aufl()
For Each ws In Worksheets 'durchsucht alle Tabellenblätter
    ws.Activate
    a = Range(Cells(Rows.Count, 1), Cells(Rows.Count, 1)).End(xlUp).Row 'letzte gefülle Zelle  _
in Spalte A
    For i = 1 To a
        If Cells(i, 2) <> "" Then Cells(i, 1) = Cells(i, 1) + Cells(i, 2) 'ggf. noch ein + ","  _
einfügen
        Cells(i, 2) = ""
    Next i
    Range("A2:A" + CStr(a)).Copy '3 Befehle zum Transponieren der Spalte A (A1 braucht nicht!)
    Range("B1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= False,  _
Transpose:=True
    Range("A2:A" + CStr(a)).Delete
Next
End Sub


Gruß
Holger


  

Betrifft: AW: Makro Zelleninhalte kopieren und einfügen von: KGB
Geschrieben am: 28.07.2008 15:30:55

Hallo Holger,

das ging ja super schnell.

Beim Probelauf kommt die Meldung Laufzeitfehler '13': Typenunverträglichkeit.
Leider habe ich das mit dem anpassen, bzw. mit 'ggf. noch ein + "," _ einfügen nicht verstanden.
Vielleicht könntest Du noch einmal...

Vielen Dank im Voraus.
Gruß
KGB


  

Betrifft: AW: Makro Zelleninhalte kopieren und einfügen von: Holger
Geschrieben am: 28.07.2008 17:45:07

Hallo KGB,
ich weiß nicht, ob ib Spalte B die Werte mit einem Punkt oder Komma beginnen oder nur eine ganze Zahl sind. Wenn sie eine ganze Zahl sind, musst du das Komma wieder einfügen:
If Cells(i, 2) <> "" Then Cells(i, 1) = Cells(i, 1) + ","+ Cells(i, 2)
Ich vermute, der Laufzeitfehler auch in dieser Zeile entsteht. erste sie daher durch
If Cells(i, 2) <> "" Then Cells(i, 1) = CStr(Cells(i, 1)) + ","+ CStr(Cells(i, 2))
und lasse ggf. ","+ weg, wenn das Komma schon in Spalte B vorhanden ist.

Gruß
Holger


  

Betrifft: AW: Makro Zelleninhalte kopieren und einfügen von: kgb
Geschrieben am: 29.07.2008 15:37:18

Hallo Holger,



der Tipp war super. Das Makro funktioniert einwandfrei. Habe es auch noch auf zusätzliche Spalten erweitert.



Vielen, vielen Dank für Deine Hilfe. Hast mir damit enorm viel Arbeit erspart.



Alles Gute

Gruß

KGB


  

Betrifft: AW: Makro Zelleninhalte kopieren und einfügen von: mpb
Geschrieben am: 28.07.2008 15:52:21

Hallo,

ich würde versuchen, das Übel an der Wurzel zu bekämpfen. Wie hast Du die Daten in Excel eingelesen, über den Textkonvertierungsassistenten? Wenn ja, was war als Trennzeichen und was als Dezimalzeichen eingestellt?

Poste doch mal Dein Makro, dass für eine Seite funktioniert, und eine Seite der doc/rtf-Datei, die einzulesen ist.

Gruß
Martin


  

Betrifft: AW: Makro Zelleninhalte kopieren und einfügen von: kgb
Geschrieben am: 29.07.2008 15:42:00

Hallo Martin,

vielen Dank für Ihren Tipp. Habe den Texteditor benutzt aber keine Verbesserung erreicht. Zwischenzeitlich konnte mein Problem durch Holger gelöst werden.

Ich danke auch Ihnen für Ihre Mühe und Ihr Interesse.

Gruß
KGB


 

Beiträge aus den Excel-Beispielen zum Thema "Makro Zelleninhalte kopieren und einfügen"