Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen

Excel: Blanko mit Daten füllen


Betrifft: Excel: Blanko mit Daten füllen von: Pascal
Geschrieben am: 16.09.2019 10:37:56

Hallo zusammen,

ich möchte die Kopfdaten einer großen Datenmenge möglichst schnell in Blanko-Formulare ausfüllen lassen.

Dazu gibt es eine "Master-Tabelle" welche diese Kopfdaten enthält.
Desweiteren das Blanko-Formular in welches diese Kopfdaten eingetragen werden sollen.
Es handelt sich um ein Blanko-Formular, welches immer verwendet werden soll.

Die "Überschrift3" & "Überschrift4" sollen übertragen werden.

Beispiel-Datei:
https://www.herber.de/bbs/user/132051.xlsx

Wäre super wenn mir jemand dabei helfen könnte,
vielen Dank und Grüße
Pascal

  

Betrifft: AW: Excel: Blanko mit Daten füllen von: 1713309.html
Geschrieben am: 16.09.2019 14:18:30

Hallo

hier in passender Code der das Problem löst. Allerdings mit einer bösen Überraschung in der Beispiel Datei!
Normalerweise kann man einem normalen CommandButton, kein ActiveX Steuerelement! Das Makro direkt zuweisen.
In deiner Datei klappt das leider nicht!?? Keine Ahnung warum???

Probier bitte selbst aus ob du den Code in ein Modul oder die Tabelle kopieren willst. Und wie du den Button hin bekommst.
Starte man das Makro von Hand funktioniert es einwandfrei.

mfg Piet

Sub Formular_ausfüllen()
        Dim Üb3 As String, Üb4 As String
           If ActiveCell.Row = 1 Then Exit Sub
           If ActiveCell.Column = 3 Then
              Üb3 = ActiveCell.Value
              Üb4 = ActiveCell.Offset(0, 1)
           End If
           If ActiveCell.Column = 4 Then
              Üb3 = ActiveCell.Offset(0, -1)
              Üb4 = ActiveCell.Value
           End If
           If Trim(Üb3) <> "" And Trim(Üb4) <> "" Then
              Worksheets("Blanko").Range("B5") = Üb3
              Worksheets("Blanko").Range("B7") = Üb4
           Else  'Fehlermeldung bei leerer Zelle
              MsgBox "Üb3 = " & Üb3 & "  /  Üb4 = " & Üb4
           End If
           MsgBox "fertig"   '** diese Zeile kann glöscht werden!
        End Sub
        

  

Betrifft: AW: Excel: Blanko mit Daten füllen von: 1713315.html
Geschrieben am: 16.09.2019 14:39:36

Hallo,

erstmal vielen Dank für den Aufwand!

Wenn ich das Makro ausführe sehe ich keine Änderung, die Msgbox erscheint zwar aber ich sehe keine Änderung in der Excel Datei.

Das Makro sollte für jede ausgefüllte Zeile im Tabellenblatt "Master" ein eigenes Arbeitsblatt erstellen.
Wenn ich 4 Zeilen habe, sollte es 4 neue Arbeitsblätter geben, jeweils mit den entsprechenden Kopfdaten aus der Überschrift 3 & 4 - Spalte.

Hoffe die Beschreibung war halbwegs verständlich :).

Vielen Dank für die Hilfe

  

Betrifft: AW: Excel: Blanko mit Daten füllen von: 1713318.html
Geschrieben am: 16.09.2019 14:47:15

Hallo Pascal

dann habe ich die Aufgabe wohl falsch verstanden, bis jetzt kopiere ich die Daten ins vorhandene "Blanko" Blatt!
Wenn das nur eine Vorlage ist muss man das Blatt ja auch umbenennen. Oder meinst du eine neue Datei anlegen??
Wie soll denn der neue Name lauten??? Und als neue Tabelle im Beispiel oder neue Datei???

mfg Piet

  

Betrifft: AW: Excel: Blanko mit Daten füllen von: 1713323.html
Geschrieben am: 16.09.2019 14:59:15

Hallo,

tut mir leid für die wohl nicht ausreichenden Infos haha.
Also das BLANKO-Blatt ist lediglich eine Vorlage.

Die Vorgehensweise des Makros wäre dann wohl wie folgt:

- Vorlage in ein neues Tabellenblatt kopieren (Name egal); Zeile 1 Üb3&Üb4 einfügen.
dann nochmal
- Vorlage in ein weiteres neues Tabellenblatt kopieren (Name egal); Zeile 2 Üb3&Üb4 einfügen usw.
bis jede ausgefüllte Zeile, in dem Fall der Beispiel-Datei bis Zeile 5, als eigenes Tabellenblatt existiert.

Liebe Grüße

  

Betrifft: AW: Excel: Blanko mit Daten füllen von: 1713344.html
Geschrieben am: 16.09.2019 16:29:46

Hallo Pascal

hier ein neuer Code, ich hoffe so ist es jetzt richtig. Die Code Zeile mit ** markiert kannst du löschen, wenn sie dir nicht gefaellt.
Bei ** wird das Blatt direkt so benannt, wie der Name in Spalte E lautet. Ohne diese Zeile heissen die neuen Sheets "Blanko(2)", "Blanko(3)" usw.


mfg Piet

Sub Makro1()
    Dim n, j As Long, lz1 As Long
    With Worksheets("Master")
       'LastZell in Spalte C suchen
       lz1 = .Cells(Rows.Count, 3).End(xlUp).Row
       
       'Vorpüfung ob alle Daten vorhanden sind??
       For j = 2 To lz1
          If .Cells(j, 3) = "" Or .Cells(j, 5) = "" Then
             MsgBox "In Zeile " & j & "fehlen Daten": Exit Sub
          End If
       Next j
    
       'Scheife zum "Blanko" Blatt kopieren  (ans Ende stellen)
       For j = 2 To lz1
          Sheets("Blanko").Copy After:=Sheets(Sheets.Count)
          '** bennent das neue Blatt nach Spalte E um!
          Sheets(Sheets.Count).Name = .Cells(j, 5).Value  '**
          Sheets(Sheets.Count).Range("B5") = .Cells(j, 3).Value
          Sheets(Sheets.Count).Range("B7") = .Cells(j, 5).Value
          n = n + 1
       Next j
       
       Application.CutCopyMode = False
       
       MsgBox n & "  neue Tabellen erstellt"
    End With
    End Sub
    

  

Betrifft: AW: Excel: Blanko mit Daten füllen von: 1713385.html
Geschrieben am: 17.09.2019 07:13:29

Hi Piet,

klappt super.

Möchte ich jetzt jedoch zum Beispiel 20 Zeilen auf die selbe Weise behandeln, spuckt das Makro mir einen Fehler aus. Habe versucht den Code dementsprechend anzupassen, jedoch ohne Erfolg.

Auf jeden Fall schonmal danke für die tolle Arbeit!

mfg
Pascal

  

Betrifft: AW: Excel: Blanko mit Daten füllen von: 1713386.html
Geschrieben am: 17.09.2019 07:21:07

Zusatz:
Ich habe in der Spalte C in der vorher nur Zahlen drinstanden, jetzt auch Buchstaben drin.
Das Makro führt die ersten 3 Zeilen aus, dann kommt es zum Fehler.
folgende Zeile wird vom Debugger markiert:

Sheets(Sheets.Count).Name = .Cells(j, 5).Value '**

mfg
Pascal

  

Betrifft: AW: Excel: Blanko mit Daten füllen von: 1713387.html
Geschrieben am: 17.09.2019 07:25:53

Tut mir leid, habe den Fehler entdeckt.
Der Fehler kam daher, weil der Name aus Zeile 3 auch genau so in der Zeile 4 vorkam und er somit natürlich die Tabellenblätter gleich benennen wollte.

Läuft also super.
Vielen Dank für die klasse Hilfe!

Liebe Grüße
Pascal

  

Betrifft: AW: vielen Dank für die nette Rückmeldung oWt von: 1713432.html
Geschrieben am: 17.09.2019 11:25:55

...

  

Betrifft: AW: Excel: Blanko mit Daten füllen von: 1713322.html
Geschrieben am: 16.09.2019 14:53:08

Hallo Pascal

Sorry, sehe gerade, neue Tabellen. Aber wie muss ich sie benennen??? - Heute klappt es leider nicht mehr ...

mfg Piet

Beiträge aus dem Excel-Forum zum Thema "Excel: Blanko mit Daten füllen"