Makroproblem

moin zusammen,

So sieht es ausschnittsweise aus

Worksheets(„Tabelle1“).Activate
Selection.Copy
Worksheets(„Tabelle1“).Range(„A1:a500“).Select
Cells.Find("", After:=ActiveCell, SearchOrder:=xlByColumns).Activate
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Worksheets(„Tabelle1“).Range(„A3:G3“).Select

nur will er nicht cells.find ausführen *grrr
dabei hat excel es selbst so aufgezeichnet
Gruß MrTom
*verzweifelt
was ist falsch??
danke für jeden tip

Hallo Tom,

So sieht es ausschnittsweise aus

Worksheets(„Tabelle1“).Activate
Selection.Copy
Worksheets(„Tabelle1“).Range(„A1:a500“).Select
Cells.Find("", After:=ActiveCell,
SearchOrder:=xlByColumns).Activate
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:=False, Transpose:=False
Worksheets(„Tabelle1“).Range(„A3:G3“).Select

nur will er nicht cells.find ausführen *grrr
dabei hat excel es selbst so aufgezeichnet

was ist falsch??

Ganz so leicht lässt sich das aus diesem Code nicht sagen, denn dazu fehlen so manche Randbedingungen. Hier ein paar Fragen, die evt. zur Lösung beitragen:

  • Welche Zelle ist z.B. vor Aufruf des Makros aktiviert?

  • Warum wird die Spalte 1 (Zeile 1-500) markiert, obwohl der Suchbefehl ja über den gesamten Bereich des Worksheets geht? Cells verweist in Deinem Makro auf ALLE Zellen des aktiven Blattes!

  • Wenn ich Dein Makro richtig interpretiere, dann soll eine von dir Markierte Auswahl (Selection.Copy) an die nächste freie Stelle in der Tabelle kopiert werden. Stimmt das?

Schreib doch einmal, was Du machen willst und wie die Ausgangsbedingungen für Dein Makro sind! Das würde bei der Lösung Deines Problems sicherlich helfen.

Guido

Hallo Guido

danke erst mal für deine hilfe

was ist falsch??

  • Welche Zelle ist z.B. vor Aufruf des Makros aktiviert?

der bereich der zum kopieren makiert wurde a3:e3

  • Warum wird die Spalte 1 (Zeile 1-500) markiert, obwohl der
    Suchbefehl ja über den gesamten Bereich des Worksheets geht?
    Cells verweist in Deinem Makro auf ALLE Zellen des aktiven
    Blattes!

das war schon ein versuch um auszuprobieren ob er so läuft.
im normalen makro is der bereich nicht makiert

  • Wenn ich Dein Makro richtig interpretiere, dann soll eine
    von dir Markierte Auswahl (Selection.Copy) an die nächste
    freie Stelle in der Tabelle kopiert werden. Stimmt das?

ja, ganz genau,
beim makro aufzeichen hat er es ja auch ordnungsgemäß gemacht nur beim 2 ten testlauf wollte er nicht mehr

ausgangssituation ist folgende:
ein formular wird geöffnet und an bestimmten stellen daten eingegeben, dann wird dieses formular per mail verschickt.
anschließend wird die tabelle geöffnet welche verknüpft ist mit dem formular. diese verknüpften stellen stehen in tabelle an a3:e3 und sollen dann mittels makro an die nächste leere stelle in spalte a geschaufelt werden.
dann tabelle speichern und alles schließen.
wie gesagt beim aufzeichenen hat er es ordnungsgemäß getan und im ersten testlauf auch. dann wollte ich es vorführen und nix ging mehr :-/

hilft das weiter?

Gruß
Tom

Hallo Tom

ausgangssituation ist folgende:
ein formular wird geöffnet und an bestimmten stellen daten
eingegeben, dann wird dieses formular per mail verschickt.
anschließend wird die tabelle geöffnet welche verknüpft ist
mit dem formular. diese verknüpften stellen stehen in tabelle
an a3:e3 und sollen dann mittels makro an die nächste leere
stelle in spalte a geschaufelt werden.
dann tabelle speichern und alles schließen.
wie gesagt beim aufzeichenen hat er es ordnungsgemäß getan und
im ersten testlauf auch. dann wollte ich es vorführen und nix
ging mehr :-/

Hier eine Lösung, die zumindest bei mir (Excel 97) funktioniert:

Sub Macro()
 Dim lngInsertInRow As Long
 Dim intCell As Integer

 'Entsprechendes WorkSheet aktivieren. Wenn die Tabelle
 'bereits aktiv ist, kann dieser Befehl auch entfallen!
 Worksheets("Tabelle1").Activate

 'Suche erste Leere Zelle in erster Spalte des aktuellen
 'WorkSheest und speichere die Zeile der leeren Zelle
 lngInsertInRow = Columns(1).Find("", \_
 LookIn:=xlValues, LookAt:=xlWhole).Row

 'Kopiere die ersten 5 Spalten aus der dritten Zeile
 'in die ersten 5 Spalten der "leeren Zeile"
 'Ich gehe davon aus, dass der zu kopierende Bereich
 'a3:e3 immer gleich bleibt:
 For intCell = 1 To 5
 Cells(lngInsertInRow, intCell) = Cells(3, intCell)
 Next

End Sub

Hoffe das hilft Dir weiter,
Gruß Guido

1 „Gefällt mir“

dickes dankeschön
Hallo Guido,

dickes dankeschön für eine so ausführlichen tip
werdes es montag sofort ausprobieren

Gruß
Tom