Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Einträge per Makro verschieben/kopieren





Frage

Hallo alle zusammen, folgende Aufgabenstelleung richte ich an euch: Ich bekomme jeden Monat eine Exceltabbele aus dem Lohnbüro gesendet die folgenden Inhalt hat: Spalte A = Personalnummer Spalte B Zeile 1 = Name Spalte B zeile 2 = Qualifikation und das für ca. 1000 Mitarbeiter. Ich möchte nun gerne von euch wissen, ob man per Makro die Qualifikation in die Spalte C verschieben kann und dann gleichzeitig die unnötige leere Zeile, die dann entsteht, löschen kann. ich hoffe ihr habt mich einigermaßen verstanden, enn nicht beantworte ich gerne eure Fragen. Gruß Compikub

Antwort 1 von Saarbauer

Hallo,

versuchs mal hiermit

Sub Makro1()
´
´ Makro1 Makro
´ Makro am 14.02.2006 von bauer aufgezeichnet
Range("A1").Select
While IsEmpty(ActiveCell) = False
ActiveCell.Offset(1, 1).Select
Selection.Copy
ActiveCell.Offset(-1, 1).Select
ActiveSheet.Paste
ActiveCell.Offset(1, -2).Select
Rows(ActiveCell.Row).Select
Selection.Delete Shift:=xlUp
Wend
End Sub


Der wert A1 in Range("A1").Select ist entsprechend deiner Tabelle anzupassen

Gruß

Helmut

Antwort 2 von Compikub

Dank für die schnelle Antwort.
Leider kenn ich mich nicht gut genug in der Makroprogramierung aus. Wo und wie muss ich dein Makro eintragen? Und gilt dsa für die gesamte Tabelle? Kann ich das Makro immer wieder benutzen, also hab ich es Global verfügbar? Ich erhalte diese Exceldatei jeden Monat, um jeweils einen Monat erweitert. Der neue Monat wird immer in eine neue Tabelle eingefügt.
Fragen über Fragen. Ich hoffe du kannst sei mir auch noch beantworten.
Vielen lieben Dank
Gruß Compikub

Antwort 3 von Saarbauer

Hallo,

öffne in Excel die Tabelle (aus Sicherheitsgründen zum Training erst mal eine Kopie) dann "Extras""Makro""Visual Basic Editor" dann gehe auf "Diese Arbeitsmappe", rechte Maustaste "Einfügen"" Modul", wechsel in das leere Feld unter"(Allgemein)" dortkin das Makro kopieren, das Feld "(Deklaration)" ändert sich in "Makro1"
Im Makro können Zeilen rot markiert sein dort das ´ durch ´ über # erstezen oder diese Zeilen löschen (sind Komentare)

Nun in der Tabelle den Cusor auf entsprechende Tabellenblatt setzen und Makro starten.

"Extras""Makro""Makros" Makro markieren "Ausführen"

Unter "Optionen" bei "Makros" kann man eine Tastenkombination zum Starten des Makros hinterlegen

Teste erst mal in einer Kopie

Gruß

Helmut

Antwort 4 von Compikub

Hallo Helmut,
nachdem ich das Makro angepasst habe, hat es auch 2x funktioniert. Jetzt nach mehreren Testversuchen ging gar nichts mehr. Liegt es eventuell an der Excelversion (Excel 2000). Komische Sache.
Gruß Compikub

Antwort 5 von Compikub

Hallo Helmut,
noch was. Und zwar möchte ich, dass das Makro global in Excel verfügbar ist, da ich diese Datei jeden Monat aus dem Lohnbüro erhalte. Das Lohnbüro ergänzt dann jeweils um den neuen Monat. Ich bin aber noch nicht fertig, denn ich mlchte noch, dass Excel automatisch eine neue Spalte C einfügt. D. h., dass ich die vorhandenen Spalten ab C um eins nach rechts versetze. Da dur mir schon sehr weit geholfen hast, bitte ich dich mir noch einletztes Mal zu helfen.
Vielen Dank im Vorraus.
Compikub

Antwort 6 von Saarbauer

Hallo,

das Problem ist so natürlich schwer nachzuvollziehen, Ich habe dir meine Emailadresse (Pager) zugesandt, vielleicht kannst du mir eine Beispieldatei zukommen lassen.

Gruß

Helmut

Antwort 7 von rainberg

Hallo Combikub,

kopiere folgenden Code in ein allgemeines Modul und starte ihn aus dem Tabellenblatt in dem du die Änderungen vornehmen willst.

Option Explicit

Sub Test()
    Dim lngI As Integer, ws1 As Worksheet
    Set ws1 = ActiveSheet
    Application.ScreenUpdating = False
    For lngI = ws1.Cells(Rows.Count, 1).End(xlUp).Row + 1 To 1 Step -2
        ws1.Cells(lngI, 1).Offset(-1, 2).Value = ws1.Cells(lngI, 2).Value
        Rows(lngI).Delete
    Next
    Application.ScreenUpdating = True
End Sub


Gruß
Rainer

Antwort 8 von Compikub

Hallo Helmut,
mit der globalen Verfügbarkeit habe ich es so gelöst, dass im Ordner XLSTART eine Datei liegt, die das Makro enthält. So habe ich es immer zur Verfügung.
Mit der zusätzlichen Spalteneinfügung hatte ich mich vielleicht etwas falsch ausgedrückt. Also, während oder am Anfang des Makro sollte man doch eine Funktion einfügen können, die eine neue leere Spalte zwischen der jetzigen Spalte B und C einfügt.

Einfach ausgedrückt: "Wenn du Makro startest, bitte erst eine neue Spalte zwischen B und C einfügen, dann erst die Einträge entsprechend den Anweisungen abarbeiten"
Ergebnis = Alle Einträge unter den Namen sind in die neue Spalte C eingefügt worden und die überzähligen Zeilen wurden gelöscht.

Gruß Compikub