Microsoft Excel

Herbers Excel/VBA-Archiv

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

Neue Blätter nach Liste generieren

Betrifft: Neue Blätter nach Liste generieren von: Juri
Geschrieben am: 20.11.2014 10:49:24

Heyo Leute! Hab da eine kleine Frage:
Ich versuche mit VBA Blätter aus einer Liste zu generieren, sollten den Aufbau eines anderen Blattes haben und der Inhalt dieses Blattes greift in einigen Zellen auf die Liste zurück (dem entsprechend der Reihe des Namens zu geordnet)

Also im Klartext:
1. Aus Liste wird alles was in A ist nach dem Namen generiert
dafür habe ich diesen

Sub schon *Siehe unten*

Nun komme ich nicht weiter: 
Ich brauche einen oder mehrere Subs, wo der Inhalt aus einem anderen Blatt in alle erstellten  _
Blätter eingefügt wird. Da aber sind zwischendurch Zellen, die auf Zellen in der Liste zugreifen 
und dort Werte rausholen z.B. "Liste!I4"
Diese Befehle variieren sich natürlich bei jeder Rechnung und so muss sich das auch ändern :/  _
Vielen Dank schon mal für die Hilfe! :)
Liebe Grüße,
Juri

Das Beispiel
https://www.herber.de/bbs/user/93904.xls


**


Sub FuegeBlaetterMitNamenEin()
Dim Bereich As String
Dim Zelle As Range
Dim Tabelle As Worksheet
Bereich = "a5:a30"
With ActiveWorkbook
For Each Zelle In ActiveSheet.Range(Bereich).Cells
 Set Tabelle = .Sheets.Add(after:=.Sheets(Sheets.Count))
 Tabelle.Name = Zelle.Text
Next Zelle
End With
End Sub



  

Betrifft: AW: Neue Blätter nach Liste generieren von: fcs
Geschrieben am: 20.11.2014 14:29:26

Hallo Juri,

verwende in dem Blatt in das die Daten übernommen werden sollen, außer für die Rechnungsnummer, Formeln mit der Funktion SVERWEIS.
z.B. in Zelle A13: =SVERWEIS($B$26;Liste!$A:$O;4;FALSCH)

Dann musst du im Makro nur in Zelle B26 die Formel anpassen bzw. die Rechnungs-Nr. eintragen lassen.

Benenne das 2. Blatt in deiner Datei um in "Muster".

Mit den folgenden Anpassungen im Makro funktioniert es dann das Einfügen der Blätter und die Anpassung der Formel in B26 der eingefügten Blätter.

Das Musterblatt kann man auf Wunsch wieder ausblenden.

Gruß
Franz

Sub FuegeBlaetterMitNamenEin()
  Dim Bereich As Range
  Dim Zelle As Range
  Dim Tabelle As Worksheet
  With ActiveWorkbook.Worksheets("Liste") 'ActiveSheet
    'Bereich mit Rechnungs-Nr. in Spalte A : A4:Axxx
    Set Bereich = .Range(.Cells(4, 1), .Cells(.Rows.Count, 1).End(xlUp))
  End With
  Application.ScreenUpdating = False
  With ActiveWorkbook.Worksheets("Muster")
    If .Visible <> xlSheetVisible Then .Visible = xlSheetVisible
  End With
  With ActiveWorkbook
    For Each Zelle In Bereich.Cells
      'Muster-Tabelle kopieren und am Ende anfügen
      .Sheets("Muster").Copy after:=.Sheets(Sheets.Count)
      Set Tabelle = ActiveSheet
      'Tabelle umbenennen
      Tabelle.Name = Zelle.Text
      'Rechnungs-Nr. eintragen bzw. Formel eintragen
'      Tabelle.Range("B26").Value = Zelle.Text
      Tabelle.Range("B26").FormulaR1C1 = "='" & Zelle.Parent.Name & "'!R" & Zelle.Row & "C1"
    Next Zelle
    Application.ScreenUpdating = True
    If MsgBox("Musterblatt wieder ausblenden?", vbQuestion + vbOKCancel + vbDefaultButton2, _
          "Musterblatt ausblenden") = vbOK Then
        ActiveWorkbook.Worksheets("Muster").Visible = xlSheetHidden
    End If
    
  End With
End Sub



  

Betrifft: AW: Neue Blätter nach Liste generieren von: Juri
Geschrieben am: 21.11.2014 10:34:33

Eine Frage zu dem Sverweis... Also ich verstehe den Aufbau des Befehls irgendwie gar nicht, aber das ist nicht so schlimm. Ich denke, dass ich mich da schon schlau lesen kann.. Meine jetzige Frage wäre da: Wenn ich jeden Sverweisbefehl in die zugehörige Zelle schreibe und dann die neuen Blätter generiere, ist das dann so, dass das immer zur richtigen Zeile von der Liste runter gesprungen wird. Sprich als Beispiel die R-Nr. wird dann zu dem Bereich der Reihe 100 oder so zugeteilt und dort stehen dann nur die Werte der Reihe 100 drin. Das wäre das wichtigste.


  

Betrifft: AW: Neue Blätter nach Liste generieren von: fcs
Geschrieben am: 21.11.2014 13:51:20

Hallo Juri,

ja die SVERWEIS-Funktion arbeitet ganau so.

Beispiel: =SVERWEIS($B$26;Liste!$A:$O;4;FALSCH)
Fie Funktion sucht den Wert in Zelle $B$26 in der 1. Spalte des angegebenen Bereiches Liste!$A:$O, hier also in Spalte A, und gibt als Ergebnis aus der gefundenen Zeile den Wert in der 4. Spalte des Bereiches zurück, hier dann aus Spalte D. Der 4. Parameter gibt Wert bei FALSCH an, das in der 1. Spalte nach genauer Übereinstimmung gesucht werden soll.

weiteres findest du unter Hilfe zu dieser Funktion.

Gruß
Franz


 

Beiträge aus den Excel-Beispielen zum Thema "Neue Blätter nach Liste generieren"