Supportnet / Forum / Tabellenkalkulation
Makro für Formulare einlesen
Frage
Hallo liebe Leute!
Ich habe da ein Problem und hoffe Ihr könnt mir weiterhelfen!
Ich habe ein Formular in Excel entworfen, worin Kopieraufträge eingetragen werden. Diese bekomme ich online zurück und möchte sie dann in das Orginalblatt rein kopieren!
In einem weiteren Blatt habe ich eine Auswertungstabele angelegt mit Verknüpfungen zu Zellen in dem Formular!
Ich benötige nun ein Makro, dass sobald ich ein neu ausgefülltes Formular in das Orginal einfüge, in meinem Auswertungsblatt eine neue Zeile mit den neuen Daten entsteht!
Wenn dazu jemand eine Idee hat, wäre ich sehr dankbar!
Gruss
Platin7
Antwort 1 von JoeKe
Moin Platin7 ,
Option Explicit
Sub Formular()
Dim intZeile As Integer
intZeile = Sheets("Auswertung").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
Sheets("Auswertung").Cells(intZeile, 1) = Sheets("Formular").Range("B6")
Sheets("Auswertung").Cells(intZeile, 2) = Sheets("Formular").Range("C6")
Sheets("Auswertung").Cells(intZeile, 3) = Sheets("Formular").Range("E6")
Sheets("Auswertung").Cells(intZeile, 4) = Sheets("Formular").Range("H8")
End Sub
Es werden die Zellen B6, C6, E6 und H8 aus dem Formular in die erste freie Zeile beginnend in Spalte A der Auswertung kopiert.
Gruß
JöKe
Option Explicit
Sub Formular()
Dim intZeile As Integer
intZeile = Sheets("Auswertung").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
Sheets("Auswertung").Cells(intZeile, 1) = Sheets("Formular").Range("B6")
Sheets("Auswertung").Cells(intZeile, 2) = Sheets("Formular").Range("C6")
Sheets("Auswertung").Cells(intZeile, 3) = Sheets("Formular").Range("E6")
Sheets("Auswertung").Cells(intZeile, 4) = Sheets("Formular").Range("H8")
End Sub
Es werden die Zellen B6, C6, E6 und H8 aus dem Formular in die erste freie Zeile beginnend in Spalte A der Auswertung kopiert.
Gruß
JöKe
Antwort 2 von Platin7
Hallo JöKe!
Vielen Dank für Deine superschnelle Antwort.
Klappt Prima!
Gruß
Platin7
Vielen Dank für Deine superschnelle Antwort.
Klappt Prima!
Gruß
Platin7
Antwort 3 von Platin7
Hallo nochmal!
Es hat sich noch ein kleines Problem ergeben!
Ich habe Wenn-Bedingungen, die sich auf das Formularbeziehen! Sobald ich jedoch ein neues einfüge, ändern sich auch die alten Angaben!
Deswegen hätte ich gern noch eine Befehlszeile, die die gesamte Zeile kopiert und als "Werte und Formate" wieder einfügt!
Mein Makro sieht folgendermaßen aus:
Die Tabelle reicht von Spalte A bis Q!
Vielen Dank für die Hilfe im Vorraus
Gruss
Platin7
Es hat sich noch ein kleines Problem ergeben!
Ich habe Wenn-Bedingungen, die sich auf das Formularbeziehen! Sobald ich jedoch ein neues einfüge, ändern sich auch die alten Angaben!
Deswegen hätte ich gern noch eine Befehlszeile, die die gesamte Zeile kopiert und als "Werte und Formate" wieder einfügt!
Mein Makro sieht folgendermaßen aus:
Sub Formular()
Dim intZeile As Integer
intZeile = Sheets("Auswertung").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
Sheets("Auswertung").Cells(intZeile, 1) = Sheets("Formular").Range("$B$32")
Sheets("Auswertung").Cells(intZeile, 2) = Sheets("Formular").Range("$E$6") ´Auftraggeber
Sheets("Auswertung").Cells(intZeile, 3) = Sheets("Formular").Range("$E$9") ´Kostenstelle
Sheets("Auswertung").Cells(intZeile, 4) = Sheets("Formular").Range("$I$15") ´Original Seitenzahl
Sheets("Auswertung").Cells(intZeile, 5) = Sheets("Formular").Range("$I$21") ´Anzahl Kopien
Sheets("Auswertung").Cells(intZeile, 11) = Sheets("Formular").Range("$I$25") ´Anzahl Briefsendung
Sheets("Auswertung").Cells(intZeile, 13) = Sheets("Formular").Range("$E$40") ´Portokosten
Sheets("Auswertung").Cells(intZeile, 15) = Sheets("Formular").Range("$E$38") ´Dauer
End Sub
Die Tabelle reicht von Spalte A bis Q!
Vielen Dank für die Hilfe im Vorraus
Gruss
Platin7
Antwort 4 von JoeKe
Nochmal Hallo,
da du nicht schreibst welche Zeile wohin kopiert werden soll, hier nur ein Beispiel:
Sheets("Formular").Rows("1:1").Copy
Sheets("Auswertung").Range("A1").PasteSpecial Paste:=xlPasteValues
Sheets("Auswertung").Range("A1").PasteSpecial Paste:=xlPasteFormats
Gruß
JöKe
da du nicht schreibst welche Zeile wohin kopiert werden soll, hier nur ein Beispiel:
Sheets("Formular").Rows("1:1").Copy
Sheets("Auswertung").Range("A1").PasteSpecial Paste:=xlPasteValues
Sheets("Auswertung").Range("A1").PasteSpecial Paste:=xlPasteFormats
Gruß
JöKe
Antwort 5 von Platin7
Hallo JöKe!
Das Makro, dass ich angegeben habe, fügt die entsprechenden Zellen in die erste Freie Zeile ein.
Also müsste sich Deine Variante auf die letzte beschriebene Zeile (Spalte A-Q) beziehen!
Gruss
Platin7
Das Makro, dass ich angegeben habe, fügt die entsprechenden Zellen in die erste Freie Zeile ein.
Also müsste sich Deine Variante auf die letzte beschriebene Zeile (Spalte A-Q) beziehen!
Gruss
Platin7
Antwort 6 von JoeKe
Hallo
Die 1:1 geben dir die Zeile an die kopiert wird (hier 1).
Mit:
Sub Makro1()
Sheets("Formular").Rows("1:1").Copy
With Sheets("Auswertung")
.Cells(Rows.Count, 1).End(xlUp).PasteSpecial Paste:=xlPasteValues
.Cells(Rows.Count, 1).End(xlUp).PasteSpecial Paste:=xlPasteFormats
End With
End Sub
wird die kopierte Zeile in die letzte beschriebene Zeile der Spalte A eingefügt.
Mit:
Sub Makro1()
Sheets("Formular").Rows("1:1").Copy
With Sheets("Auswertung")
.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteFormats
End With
End Sub
in die erste ferie Zelle der Spalte A.
Gruß
Die 1:1 geben dir die Zeile an die kopiert wird (hier 1).
Mit:
Sub Makro1()
Sheets("Formular").Rows("1:1").Copy
With Sheets("Auswertung")
.Cells(Rows.Count, 1).End(xlUp).PasteSpecial Paste:=xlPasteValues
.Cells(Rows.Count, 1).End(xlUp).PasteSpecial Paste:=xlPasteFormats
End With
End Sub
wird die kopierte Zeile in die letzte beschriebene Zeile der Spalte A eingefügt.
Mit:
Sub Makro1()
Sheets("Formular").Rows("1:1").Copy
With Sheets("Auswertung")
.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteFormats
End With
End Sub
in die erste ferie Zelle der Spalte A.
Gruß
Antwort 7 von Platin7
Danke JöKe!
Habe es noch ein wenig angepasst und jetzt funktioniert es prima!
Gruss
Platin7
Habe es noch ein wenig angepasst und jetzt funktioniert es prima!
Gruss
Platin7