Microsoft Excel

Herbers Excel/VBA-Archiv

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

Macrostart nach Einfügen von Werten

Betrifft: Macrostart nach Einfügen von Werten von: Sigi
Geschrieben am: 17.09.2004 17:33:16

Hallo,

nun habe auch ich ein Problem. Wahrscheinlich für Euch Profis ein klitzekleines, aber ich komme nicht weiter.
Ich wäre dankbar für Eure Hilfe.

Aus einem anderen Programm werden Werte in ein Tabellenblatt per "einfügen" eingetragen. Danach soll ein Macro ablaufen.
Wie bekomme ich es hin, dass dieses Macro automatisch startet, wenn die Werte eingefügt sind?

liebe Grüße
Sigi

  


Betrifft: AW: Macrostart nach Einfügen von Werten von: Bert
Geschrieben am: 17.09.2004 17:39:46

Private Sub Worksheet_Change(ByVal Target As Range)
Call Dein_Makro
End Sub


Bert


  


Betrifft: AW: Macrostart nach Einfügen von Werten von: geri
Geschrieben am: 17.09.2004 17:43:41

Hallo Sigi

folgendes Makro zu der Tabelle hinzufügen:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(False, False) = "A1" Then
    Call DeinMAKRO
    End If
End Sub


gruss geri
denke so sollte es gehen


  


Betrifft: AW: Macrostart nach Einfügen von Werten von: Sigi
Geschrieben am: 17.09.2004 18:06:31

Hi,

danke für die schnellen Antworten. Prinzipiell funktioniert das Aufrufen des Makros auch. Aber nun spinnt mein Macro, es schafft und schafft und findet kein Ende und ich weiß nicht warum. Beim manuellen Aufruf funktioniert es.

Die Daten sollen reihenweise in ein anderes Tabellenblatt einsortiert werden und anschließend ausgedruckt. Dann kommt die nächste Reihe dran....einsortieren...ausdrucken usw. bis keine Daten mehr vorhanden sind.
Hier ist mein Macro. Vielleicht erkennt ihr ja, was da faul ist.

Sub Formulare()

'Formular ausfüllen und drucken
            letzteZeile = Cells.SpecialCells(xlCellTypeLastCell).Row
    For z = letzteZeile To 1 Step -1
        If Application.WorksheetFunction.CountA(Rows(z)) = 0 Then Rows(z).Delete
    Next
            Merker = 1
         Do
            Merker = Merker + 1
        If Worksheets("Labbaseliste").Cells(Merker, 1).Value = "" Then
           MsgBox ("Keine einzutragenden Daten mehr vorhanden!")
               Cells.Select                 'Labbasedaten löschen
               Selection.ClearContents
           Exit Sub
           
        Else
            Worksheets("Probenbeschreibung").Range("I1").Value = Worksheets("Labbaseliste").Cells(Merker, 1).Value
            Worksheets("Probenbeschreibung").Range("C7").Value = Worksheets("Labbaseliste").Cells(Merker, 2).Value
            Worksheets("Probenbeschreibung").Range("C12").Value = Worksheets("Labbaseliste").Cells(Merker, 6).Value
            Worksheets("Probenbeschreibung").Range("D17").Value = Worksheets("Labbaseliste").Cells(Merker, 3).Value
            If Worksheets("Labbaseliste").Cells(Merker, 5).Value = "Rotwein" Then
                   Worksheets("Probenbeschreibung").Range("E9").Value = "X"
            
            ElseIf Worksheets("Labbaseliste").Cells(Merker, 5).Value = "Weißwein" Then
                   Worksheets("Probenbeschreibung").Range("H9").Value = "X"
                  
            ElseIf Worksheets("Labbaseliste").Cells(Merker, 5).Value = "" Then
                   Worksheets("Probenbeschreibung").Range("H9").Value = ""
            End If
            
            If Worksheets("Labbaseliste").Cells(Merker, 4).Value = "0,50 l" Then
                   Worksheets("Probenbeschreibung").Range("B26").Value = "X"
            ElseIf Worksheets("Labbaseliste").Cells(Merker, 4).Value = "0,75 l" Then
                   Worksheets("Probenbeschreibung").Range("B27").Value = "X"
            ElseIf Worksheets("Labbaseliste").Cells(Merker, 4).Value = "1,00 l" Then
                   Worksheets("Probenbeschreibung").Range("B28").Value = "X"
            ElseIf Worksheets("Labbaseliste").Cells(Merker, 4).Value = "1,5 l" Then
                   Worksheets("Probenbeschreibung").Range("B29").Value = "X"
            ElseIf Worksheets("Labbaseliste").Cells(Merker, 4).Value = "" Then
                   Worksheets("Probenbeschreibung").Range("B27").Value = ""
            End If
            Drucken
            löschen
        End If
         Loop
End Sub




Sub Drucken()                    ' Drucken eines Formular
   Worksheets("Probenbeschreibung").PrintOut Copies:=1, Collate:=True
   
End Sub


Sub löschen()                     'Formularwerte löschen
   Worksheets("Probenbeschreibung").Range("I1,C7,C12:D12,D17,E9,H9,B26,B27,B28,B29").ClearContents
     
End Sub


Danke
Liebe Grüße
Sigi


  


Betrifft: AW: Macrostart nach Einfügen von Werten von: Bert
Geschrieben am: 17.09.2004 18:19:26

Private Sub Worksheet_Change(ByVal Target As Range)
On Error goto Reset
Application.enableEvents = false
Call Dein_Makro
Reset:
Application.enableEvents = True
End Sub


Bert


  


Betrifft: AW: Macrostart nach Einfügen von Werten von: Sigi
Geschrieben am: 17.09.2004 19:08:27

daaaanke Bert.... es klappt... auch wenn ichs nicht ganz verstehe....seufz


 

Beiträge aus den Excel-Beispielen zum Thema "Macrostart nach Einfügen von Werten"