Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Excel programmierung

VBA Excel programmierung
13.06.2019 13:34:50
Marc
Servus,
ich habe ein Problem bei der Programmierung eines Makros.
Folgendes Problem:
Ich schreibe über eine Maske "Namen", "Datum" und "Liter" in Tabelle 1
Namen stehen insgesamt 30 zur Verfügung. Diese 30 sind auch als weitere Tabellenblätter angelegt.
Nun möchte ich vor Schließen der Mappe das aus Tabellenblatt 1 der Jeweilige "Namen" mit den anderen 2 Werten in das gleichnamige Tabellenblatt kopiert wird.
Wenn ich die Mappe anschließend wieder Öffnen möchte soll Tabelle 1 leer sein und die restlichen Werte sollen in dem richtigen Tabellenblatt stehen. ( Dort sollen die Werte fortlaufend aufgelistet werden, Darum das Datum)
Ich habe schon einiges Programmiert aber bei diesem Makro scheitere ich.
Ich hoffe mir kann jemand Helfen oder einen Denkanstoß geben.
Danke schon mal
Grus Marc
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Excel programmierung
13.06.2019 14:13:33
UweD
Hallo
Das Makro muss in den Codebereich von "DieseArbeitsmappe"
Die Bereiche, wo gelesen und in Welche splaten geschrieben werden soll, musst du noch anpassen
Microsoft Excel Objekt DieseArbeitsmappe
Option Explicit 
 
Private Sub Workbook_BeforeClose(Cancel As Boolean) 
    Dim strName As String, Datum As Date, Liter As Integer, LR As Long 
    Dim TB, Sp As Integer 
    Set TB = Sheets("Übersicht") 
 
    'Stop 'nur zum Testen 
     
    strName = TB.Range("B2") 
    Datum = TB.Range("C2") 
    Liter = TB.Range("D2") 
    Sp = 1 'Spalte, in die eingefügt werden soll 
     
    'prüfen ob Blatt existiert 
    If IsError(Evaluate(strName & "!A1")) Then 
        MsgBox "Fehler: Blatt '" & strName & "' existiert nicht." 
         
    Else 
        With Sheets(strName) 
            LR = .Cells(.Rows.Count, 1).End(xlUp).Row 'letzte Zeile der Spalte 
            .Cells(LR + 1, Sp) = strName 
            .Cells(LR + 1, Sp + 1) = Datum 
            .Cells(LR + 1, Sp + 2) = Liter 
        End With 
    End If 
     
    'löschen 
    TB.Range("B2:D2").ClearContents 
     
    ThisWorkbook.Save 
     
End Sub 
 

LG UweD
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige