Automatische Ausgabe einer MsgBox
#1
Hallo,

ich hab leider ein weiteres Problem - und bekomme es nicht hin (weder durch Tipps im Netz und hier hab ich leider bis jetzt auch nicht das richtige gefunden).

Also:

Man hat eine Exceldatei mit 3 Tabellenblättern. Die Daten werden von Tabelle 1 in Tabelle 3 kopiert und Tabelle 3 soll dann als Vorlage für ein Seriendruckdokument dienen.

Jetzt ist das so, dass ich dringend eine Begrenzung für die mögliche Wordausgabe benötige, also maximal 50 Zeilen in Tabelle 3. Meine Idee war jetzt ein Makro zu kreieren die automatisch angezeigt wird, das eine MsgBox ausgibt, zusammengereimt hab ich mir das:

If Worksheets("Tabelle3").cells(51, 2) = "Wert" Then
MsgBox = Ist Voll

end if

Leider funktioniert das überhaupt nicht, nicht mal wenn man auf Ausführen drückt.

Wie schreibt eine MsgBox die dann automatisch ausgegeben wird und wo muss ich diese mit einbringen?

Vielen Dank und viele Grüße

Basti
Top
#2
Hallo,

so würde Deine Msgbox aufgehen:


Code:
Sub test()
 If Worksheets("Tabelle3").Cells(51, 2) = "Wert" Then
   MsgBox "Ist Voll"
 End If
End Sub

Aber nicht automatisch sondern, wenn Du den Code selber startest und in Zelle A52 der Begriff "Wert" drin steht.

Automatisch kann der Code starten bei bestimmten Ereignissen:
-Zelländerung der Tabelle
-Tabellenwechsel
-Schließen oder speichern der Datei.
und andere
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • Basti5
Top
#3
Mal wieder ein dickes Dankeschön !!!

Viele Grüße

Basti
Top
#4
Ok Sorry, kleine Nachfrage noch:

Du hast geschrieben die Ausgabe würde gehen, wenn man den Code selber startet, kann man diesen direkt in die Kopierfunktion (von gestern Abend) mit reinschreiben. Idee, nach dem 50. Kopiervorgang erscheint dann die Box.

Würde dies gehen?

VG
Top
#5
Hallo Basti,

ich war so frei und habe geguckt, was gestern war (normalerweise erinnere ich mich nicht mal, was ich gestern gegessen habe)

Den Code von dort habe ich unten erweitert.
Dabei wird nicht nach Anzahl der Vorgänge geschaut, sondern ob die letzte belegte Zeile in Zeile 50 ist. Musst Du Deinen Gegebenheiten anpassen.


Code:
Private Sub CommandButton3_Click()
 Dim Quelltab As Worksheet
 Dim Zieltab As Worksheet
 Dim lngZ As Long

 Set Quelltab = ActiveWorkbook.Worksheets("Gebührenrechner")
 Set Zieltab = ActiveWorkbook.Worksheets("Rechnungsausgabe")
 With Zieltab
    lngZ = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
    If lngZ < 51 Then
    .Cells(lngZ, 2) = Quelltab.Range("O13")    'Anrede
    .Cells(2, 3) = Quelltab.Range("C11")    'Vorname
    .Cells(lngZ, 4) = Quelltab.Range("C12")    'Nachname
    .Cells(lngZ, 5) = Quelltab.Range("C13")    'Straße
    .Cells(lngZ, 6) = Quelltab.Range("C14")    'PLZ
    .Cells(lngZ, 7) = Quelltab.Range("C15")    'Ort
    .Cells(lngZ, 8) = Quelltab.Range("C17")    'Aktenzeichen
    .Cells(lngZ, 9) = Quelltab.Range("C19")    'Gegenstandswert
    .Cells(lngZ, 10) = Quelltab.Range("O7")    'Faktor
    .Cells(lngZ, 11) = Quelltab.Range("F10")   'Geschäftsgebühr
    .Cells(lngZ, 12) = Quelltab.Range("F12")   'Post und Telekommunikation A
    .Cells(lngZ, 13) = Quelltab.Range("F14")   'Zwischensumme A
    .Cells(lngZ, 14) = Quelltab.Range("F16")   'Mehrwertsteuer A
    .Cells(lngZ, 15) = Quelltab.Range("F18")   'gesamt Außergericht.
    .Cells(lngZ, 16) = Quelltab.Range("I10")   'Verfahrensgebühr
    .Cells(lngZ, 17) = Quelltab.Range("I12")   'Anrechnung
    .Cells(lngZ, 18) = Quelltab.Range("I14")   'Terminsgebühr
    .Cells(lngZ, 19) = Quelltab.Range("I16")   'Post und Telekommunikation G
    .Cells(lngZ, 20) = Quelltab.Range("I18")   'Zwischensumme G
    .Cells(lngZ, 21) = Quelltab.Range("I20")   'Mehrwertsteuer G
    .Cells(lngZ, 22) = Quelltab.Range("I22")   'gesamt gerichtlich
    .Cells(lngZ, 23) = Quelltab.Range("L10")   'zu zahlender Betrag
    .Cells(lngZ, 24) = Quelltab.Range("F20")   'Honorar
    .Cells(lngZ, 25) = Quelltab.Range("L12")   'Honorar Betrag

     If .Cells(lngZ, 2).Value = "Frau" Then
        .Cells(lngZ, 26).Value = "Sehr geehrte Frau"
     Else
        .Cells(lngZ, 26).Value = "Sehr geehrter Herr"
     End If
     
     If Worksheets("Gebührenrechner").Cells(11, 3).Value = "z.H. Herrn" Then
        .Cells(lngZ, 26) = "Sehr geehrter Herr"
     Else
        .Cells(lngZ, 26).Value = "Sehr geehrte Frau"
     End If
   Else
     MsgBox "Wir sind an der 50. Zeile angelangt." & vbLf & vbLf & "Ich mach nicht mehr weiter!"
   End If
 End With
End Sub
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • Basti5
Top
#6
Hammer vielen vielen Dank!!!   :17:  :18:
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste