Supportnet / Forum / Tabellenkalkulation
Kann man ein Excel-Kopiermakro mit Platzhaltern erstellen?
Frage
Hallo ihr Excel-Meister da draußen
Ich brauche Hilfe bei (m)einem Excel-Makro-Problem.
Ich habe 2 Excel-Sheets, die folgendermaßen aufgebaut sind:
Exceltabelle 1:
In dieser Exceltabelle werden Ideen eingetragen. Mittels der Spalten werden Fragen (Spaltenüberschriften) gestellt und (per Zelle in der Zeile) beantworte bzw erklärt und definiert.
Deshalb ist diese Exceltabelle auch fortlaufend, weil eben immer wieder Ideen dazukommen und definiert werden.
Exceltabelle 2:
Ist ein Excel-Sheet, dass graphisch wie ein Formular aussieht.
Alle Felder in diesem Sheet entsprechen den Spaltenüberschriften aus der Exceltabelle 1. Dieser Sheet je Idee abgespeichert und nicht fortlaufend geführt. Für jede Idee wird also ein Excel-Sheet dieser Art abgespeichert (und letztendlich eingereicht).
Exceltabelle 1+2 haben also denselben Inhalt wobei aber nur in der 1 ALLE Ideen gespeichert werden.
Ich habe nun ein Makro mittels des Makro-Rekorders erstellt, dass sinngemäß folgendes macht:
Markiere Spalte A, Zelle 1, bis Spalte AF, Zelle 1, und kopiere sie. Füge diese markierten Zellen dann in eine extra Excel-Sheet, dass graphisch wie ein Formular aussieht, in die entsprechenden Felder ein.
>>>>>>>>>Zu meinem Problem<<<<<<<<<
Wie kann ich es erreichen, dass das Makro nicht immer die Zellen von A1-AF1 aus der Exceltabelle 1 markiert und kopiert und in das Excel-Sheet 2 einfügt sondern?
Ich möchte gerne, wenn ich z.B. die Idee aus der Zeile 25 einreichen möchte (mittels des graphischen Excelsheets (2)), dass mir das Makro eben genau diese Zeile und nicht die 1 markiert, kopiert und einfügt.
Zu meinen Fragen:
1) Ist ein solches Makro möglich?
2) Muss ich "Platzhalter" in das Makro einbauen und wenn ja wie?
3) Kann ich evtl. eine extrem stylische Checkbox mit einem Haken einfügen, dass mir in der Art wie eine "wenn ein Häckchen in diese Box gemacht wird, dann markiere und kopiere mir "nur" diese Zeile und füge sie in die Exceltabelle 2 ein"-Funktion machen? Und wenn ja, wie kann ich das machen?
Sehr viele anspruchsvolle Fragen für jemanden, der sich so garnicht damit auskennt. *grins*
Ich hoffe sehr, dass mir geholfen werden kann.
Herzlichsten Dank und einen schönen Tag noch,
MelSchmi
Antwort 1 von fedjo
Hallo MelSchmi,
den Code in das Codefenster derTabelle1 eintragen.
Fügt man in der Spalte (AG) einer Zelle ein "x" ein, dann wird die ganze Zeile (A-AF) in die Tabelle2 übertragen.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim LoLetzte As Long
If Target.Column <> 33 Then Exit Sub '(AG)
If Target.Count > 1 Then Exit Sub
If Target = "x" Then
LoLetzte = Worksheets("Tabelle2").UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1
Range("A" & Target.Row & ":AF" & Target.Row).Copy Worksheets("Tabelle2").Cells(LoLetzte, 1)
End If
End Sub
den Code in das Codefenster derTabelle1 eintragen.
Fügt man in der Spalte (AG) einer Zelle ein "x" ein, dann wird die ganze Zeile (A-AF) in die Tabelle2 übertragen.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim LoLetzte As Long
If Target.Column <> 33 Then Exit Sub '(AG)
If Target.Count > 1 Then Exit Sub
If Target = "x" Then
LoLetzte = Worksheets("Tabelle2").UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1
Range("A" & Target.Row & ":AF" & Target.Row).Copy Worksheets("Tabelle2").Cells(LoLetzte, 1)
End If
End Sub
Antwort 2 von MelSchmi
Guten Morgen fedjo,
vielen Dank für deine Hilfe!
Ich werde es gleich heute einmal ausprobieren und gebe dann Bescheid.
LG
MelSchmi
vielen Dank für deine Hilfe!
Ich werde es gleich heute einmal ausprobieren und gebe dann Bescheid.
LG
MelSchmi

