Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1036to1040
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro für kopieren von tabellenblättern

Makro für kopieren von tabellenblättern
09.01.2009 23:00:54
tabellenblättern
Hallo Entwicklergemeinde,
bin auf der suche nach einer smarten lösung für folgendes problem
ausgangsituation:
eine tabelle mit ca. 100 spalten mit informationen wo ich für ca. 250
artikel verschiedenste informationen angeben kann (alter container der
verwendet wurde, neuer container, gewicht, etc.)
für die übersichtliche darstellung für jeden einzelnen artikel gibt es
ein formularblatt für jeden einzelnen artikel (= jeweils ein
eigenständiges tabellenblatt)
wenn man in diesem formular die artikelnr. eingibt wird über einen
sverweis die jeweilige artikelinformation eingefügt.
problemstellung:
suche ein makro welches mir für jeden artikel eine kopie dieses
formularblattes erstellt und gleich die artikelnr einträgt und dies
eben für die anzahl der in der datentabelle gespeicherten artikel
(egal ob einmal 50 oder nächstesmal 200)
lässt sich dies einfach realsieren oder wäre es hier sinnvoller die
250 kopien händisch zu machen.
danke für unterstützung
lg
Jakob

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro für kopieren von tabellenblättern
09.01.2009 23:32:58
tabellenblättern
Hallo Jakob,
das lässt sich sicher einrichten, aber mit einer Beispieldatei würde man sich leichter tun.
Die Beispieldatei sollte so aufgebaut sein wie das Original.
Gruß Sepp

AW: Makro für kopieren von tabellenblättern
09.01.2009 23:49:00
tabellenblättern
Hallo Sepp
https://www.herber.de/bbs/user/58246.xls
hier eine Testdatei, aus datenschutzgründen natürlich keine daten bzw. aus dem formular musste ich die beschriftungen entfernen,
wesentlich ist, die tabellenblätter sind richtig beschriftet, und das packaging form schaut genau so aus nur die texte wurden gelöscht,
im datenfile beginnen die artikelnr auch erst in a6 wie im testfile und gehen unterschiedlich lang manchmal bis über a300 runter
ziel des makros soll sein, dass für jede artikelnr. ein packaging form kopiert wird und diese nummer im roten feld im formular eingetragen wird und weiters als beschriftung des blattes dient, das blatt muss immer ans ende kopiert werden da zwischen den daten und den packaging forms noch einige parameter blätter sind,
hoffe es ist soweit verständlich
jakob
Anzeige
AW: Makro für kopieren von tabellenblättern
10.01.2009 00:09:00
tabellenblättern
Hallo Jakob,
na dann viel Spass.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub generatePackingSheets()
    Dim objWsDaten As Worksheet, objWsForm As Worksheet
    Dim lngRow As Long, lngLast As Long
    
    On Error GoTo ErrExit
    GMS
    
    Set objWsDaten = Sheets("Daten")
    Set objWsForm = Sheets("packaging form")
    
    lngLast = Application.Max(6, objWsDaten.Cells(Rows.Count, 1).End(xlUp).Row)
    
    For lngRow = 6 To lngLast
        If objWsDaten.Cells(lngRow, 1) <> "" Then
            If Not SheetExist(objWsDaten.Cells(lngRow, 1).Value) Then
                objWsForm.Cells(7, 17) = objWsDaten.Cells(lngRow, 1).Value
                objWsForm.Copy after:=Sheets(Sheets.Count)
                Sheets(Sheets.Count).Name = CStr(objWsDaten.Cells(lngRow, 1).Value)
            End If
        End If
    Next
    
    ErrExit:
    If Err.Number <> 0 Then
        MsgBox "Fehler: " & Err.Number & vbLf & vbLf & Err.Description, Title:="Fehler"
    End If
    GMS True
    Set objWsDaten = Nothing
    Set objWsForm = Nothing
End Sub

Private Function SheetExist(ByVal sheetName As String, Optional WbName As String) As Boolean
    Dim wks As Worksheet
    On Error GoTo ERRORHANDLER
    If WbName = "" Then WbName = ThisWorkbook.Name
    For Each wks In Workbooks(WbName).Worksheets
        If wks.Name = sheetName Then SheetExist = True: Exit Function
    Next
    ERRORHANDLER:
    SheetExist = False
End Function

Private Sub GMS(Optional ByVal Modus As Boolean = False)
    Static lngCalc As Long
    
    With Application
        .ScreenUpdating = Modus
        .EnableEvents = Modus
        .DisplayAlerts = Modus
        .EnableCancelKey = IIf(Modus, 1, 0)
        If Not Modus Then lngCalc = .Calculation
        .Calculation = IIf(Modus, lngCalc, -4135)
        .Cursor = IIf(Modus, -4143, 2)
    End With
    
End Sub

Gruß Sepp

Anzeige
AW: Makro für kopieren von tabellenblättern
10.01.2009 12:46:00
tabellenblättern
Hallo Sepp,
Danke für dieses tolle Makro, funktioniert sehr gut, mit einer kleinen Ausnahme, die Tabellenblätter werden wie folgt benannt, "packaging form (1), ... packaging form (n)", es sollte jedoch die jeweilige Artikel-Nr. als Name hergenommen werden.
Danke
Jakob
AW: Makro für kopieren von tabellenblättern
10.01.2009 13:03:00
tabellenblättern
Hallo Jakob,
es wird die Artikelnummer als Name verwendet!
Wie lauten die Artikelnummern im Original?
Gruß Sepp

AW: Makro für kopieren von tabellenblättern
10.01.2009 13:08:00
tabellenblättern
Hallo Sepp
es gibt 3 unterschiedliche Möglichkeiten
1-33-135-1871
1620005303481
470564080
lg
Jakob
Anzeige
AW: Makro für kopieren von tabellenblättern
10.01.2009 14:47:00
tabellenblättern
Hallo Jakob,
ich weiß nicht was du anstellst, aber bei mir werden alle Blätter erzeugt und richtig benannt.
Gruß Sepp

AW: Makro für kopieren von tabellenblättern
11.01.2009 18:49:49
tabellenblättern
Hallo Sepp,
weis auch icht was es da gehabt hat, hab es nocheinmal probiert und jetzt funktioniert es genau so wie ich es mir vorstelle ;-)
danke nochmal für die rasche und sehr kompetente unterstützung.
lg
Jakob
Autofilter
09.01.2009 23:50:08
Beate
Hallo Jakob,
bei deiner Idee fällt mir das Wort Datenredundanz ein. Sowas (ca. 250 Blätter) verlangsamt ja eine Datei auch ziemlich.
Warum baust du in diesem einen Tabellenblatt nicht einfach einen Autofilter ein, mit dem du den gesuchten Artikel ausfilterst?
Guckst Du: Autofilter
Gruß,
Beate
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige