Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1968to1972
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

Verbindung meiner selbstgebauten MessageBox

Verbindung meiner selbstgebauten MessageBox
01.04.2024 13:03:05
Hoffi38
Hallo liebe Excel gemeinde,

ich stehe vor einem Problem.
Ich möchte gerne meine selbst gebaute Message box mit einem bestehenden VBA code verbinden.
Und zwar soll die MSGBox sich öffnen nachdem ich auf den BTN in der bereits geöffneten UserForm geklickt habe.
Das geschieht auch aber.....
Wenn ich den Löschen BTN in der UserForm klicke werden daten bereits in eine weitere Tabelle Übertragen. (Dokumentations zwecken)
Das soll auch weiterhin geschehen jedoch erst wenn ich auf löschen in der dann Erschienenen MSGBox drücke.

Was auch passieren soll ist das sich die Aktive Zeile woraus ich die Userform gerufen habe löschen soll.
Das Passiert auch wenn ich bei der MSGBox löschen anklicke.
Das Problem ist aber jetzt das wenn ich den vorgang in der MSGBox abbreche habe ich trotzdem in der Dokumentations Tabelle den
gelöschten Eintrag. Das ist so nicht gewollt.
Kann mir da jemand die erleuchtung bringen :-)?

Das ist der code in der UserFormLöschen:

Private Sub btnLöschen_Click()

'Prüfung, ob Mitarbeiterfeld ausgefüllt ist

If cbMitarbeiter.Value = "" Then
MsgBox " Bitte den Mitarbeiter Eintragen.", , ""

Exit Sub
End If

'Abfrage und Aufruf der MessageboxLöschen

Call MessageBoxLöschen_Einblenden


'Daten ins Tabellenblatt 2 einfügen
Dim neuZeile As Long

With Tabelle2
neuezeile = .Cells(.Rows.Count, 2).End(xlUp).Row + 1

.Cells(neuezeile, 2).Value = TextBoxDatum.Value
.Cells(neuezeile, 3).Value = TextBoxArtikelnummerHECO.Value
.Cells(neuezeile, 4).Value = TextBoxArtikelnummerKunde.Value
.Cells(neuezeile, 5).Value = TextBoxKunde.Value
.Cells(neuezeile, 6).Value = TextBoxArtikelBezeichnung.Value
.Cells(neuezeile, 7).Value = TextBoxZustand.Value
.Cells(neuezeile, 8).Value = TextBoxBemerkung.Value
.Cells(neuezeile, 12).Value = TextBoxEinspritzflansch.Value
.Cells(neuezeile, 14).Value = TextBoxFormhälfteOben.Value
.Cells(neuezeile, 16).Value = TextBoxFormhälfteUnten1.Value
.Cells(neuezeile, 18).Value = TextBoxFormhälfteUnten2.Value
.Cells(neuezeile, 20).Value = TextBoxTopf.Value
.Cells(neuezeile, 21).Value = TextBoxFass.Value
.Cells(neuezeile, 23).Value = cbMitarbeiter.Value
.Cells(neuezeile, 22).Value = IIf(OptionButtonLöschen, "Gelöscht", "---")

End With

'UserFormNeu schließen
Unload Me

End Sub

Private Sub UserForm_Initialize()

'Daten aus Tabelle 1 in UserFormLöschen einlesen

TextBoxID.Text = Cells(ActiveCell.Row, 2)
TextBoxKunde.Text = Cells(ActiveCell.Row, 5)
TextBoxArtikelnummerKunde.Text = Cells(ActiveCell.Row, 4)
TextBoxArtikelnummerHECO.Text = Cells(ActiveCell.Row, 3)
TextBoxEinspritzflansch.Text = Cells(ActiveCell.Row, 12)
TextBoxFormhälfteUnten1.Text = Cells(ActiveCell.Row, 16)
TextBoxTopf.Text = Cells(ActiveCell.Row, 20)
TextBoxZustand.Text = Cells(ActiveCell.Row, 7)
TextBoxArtikelBezeichnung.Text = Cells(ActiveCell.Row, 6)
TextBoxBemerkung.Text = Cells(ActiveCell.Row, 8)
TextBoxFormhälfteOben.Text = Cells(ActiveCell.Row, 14)
TextBoxFormhälfteUnten2.Text = Cells(ActiveCell.Row, 18)
TextBoxFass.Text = Cells(ActiveCell.Row, 21)

'Combobox Mitarbeiter befüllen
cbMitarbeiter.List = Tabelle3.ListObjects("tblMitarbeiter").DataBodyRange.Value

'OptionButtonLöschen auswählen
OptionButtonLöschen.Value = True

End Sub

'Einfärbung btn_Löschen
Private Sub btnLöschen_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
btnLöschen.BackColor = RGB(238, 0, 0)

End Sub

'Rückfärbung btn_Speichern
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
btnLöschen.BackColor = RGB(255, 255, 255)

End Sub

'Das aktuelle Datum Automatisch einfügen
Private Sub UserForm_Activate()
TextBoxDatum = Date

End Sub

Und das ist der Code im Modul2 für die Selbstgebaute MSGBox
(dieser soll so eingebunden werden wie es oben steht)

Option Explicit

Sub MessageBoxLöschen_Einblenden()

'Blattschutz aktivieren
Tabelle1.Protect DrawingObjects:=True

'MessageBoxLöschen Einblenden
Tabelle1.Shapes("MessageBoxLöschen").Visible = True

End Sub

Sub MessageBoxLöschen_Ausblenden()

'MessageboxLöschen ausblenden
Tabelle1.Shapes("MessageBoxLöschen").Visible = False

End Sub

Sub ZeileLöschen()

'Blattschutz deaktivieren
Tabelle1.Unprotect

'Aktive Zeile Löschen
ActiveCell.EntireRow.Delete

'MessageboxLöschen ausblenden
Tabelle1.Shapes("MessageBoxLöschen").Visible = False

End Sub


https://www.herber.de/bbs/user/168427.xlsm

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Verbindung meiner selbstgebauten MessageBox
01.04.2024 13:07:20
Uduuh
Hallo,
was sollen wir mit einer geschützten Datei?

Gruß aus'm Pott
Udo
AW: Verbindung meiner selbstgebauten MessageBox
01.04.2024 14:50:40
ralf_b
auch mal was Neues. Eine Messagebox als Shapegruppe. War es dir zu einfach das als Userform oder einfache Messagebox zu erstellen?
AW: Verbindung meiner selbstgebauten MessageBox
01.04.2024 18:06:34
Uduuh
Hallo,
das musst du ein bisschen umschichten.
Modul1:
Sub UserFormLöschen_Aufrufen()

If Cells(ActiveCell.Row, 2) > "" Then
UserFormLöschen.Show
Else
MsgBox "Nix markiert"
End If
End Sub

Modul2:
Sub MessageBoxLöschen_Ausblenden()

'MessageboxLöschen ausblenden
Tabelle1.Shapes("MessageBoxLöschen").Visible = False
Unload UserFormLöschen
End Sub

Sub ZeileLöschen()
Dim NeueZeile As Long
With Tabelle2
NeueZeile = .Cells(.Rows.Count, 2).End(xlUp).Row + 1

.Cells(NeueZeile, 2).Value = UserFormLöschen.TextBoxDatum.Value
.Cells(NeueZeile, 3).Value = UserFormLöschen.TextBoxArtikelnummerHECO.Value
.Cells(NeueZeile, 4).Value = UserFormLöschen.TextBoxArtikelnummerKunde.Value
.Cells(NeueZeile, 5).Value = UserFormLöschen.TextBoxKunde.Value
.Cells(NeueZeile, 6).Value = UserFormLöschen.TextBoxArtikelBezeichnung.Value
.Cells(NeueZeile, 7).Value = UserFormLöschen.TextBoxZustand.Value
.Cells(NeueZeile, 8).Value = UserFormLöschen.TextBoxBemerkung.Value
.Cells(NeueZeile, 12).Value = UserFormLöschen.TextBoxEinspritzflansch.Value
.Cells(NeueZeile, 14).Value = UserFormLöschen.TextBoxFormhälfteOben.Value
.Cells(NeueZeile, 16).Value = UserFormLöschen.TextBoxFormhälfteUnten1.Value
.Cells(NeueZeile, 18).Value = UserFormLöschen.TextBoxFormhälfteUnten2.Value
.Cells(NeueZeile, 20).Value = UserFormLöschen.TextBoxTopf.Value
.Cells(NeueZeile, 21).Value = UserFormLöschen.TextBoxFass.Value
.Cells(NeueZeile, 23).Value = UserFormLöschen.cbMitarbeiter.Value
.Cells(NeueZeile, 22).Value = IIf(UserFormLöschen.OptionButtonLöschen, "Gelöscht", "---")

End With
'Blattschutz deaktivieren
Tabelle1.Unprotect

'Aktive Zeile Löschen
ActiveCell.EntireRow.Delete

'MessageboxLöschen ausblenden
Tabelle1.Shapes("MessageBoxLöschen").Visible = False
Unload UserFormLöschen
End Sub

UserformLöschen:
Private Sub btnLöschen_Click()  

'Prüfung, ob Mitarbeiterfeld ausgefüllt ist
If cbMitarbeiter.Value = "" Then
MsgBox " Bitte den Mitarbeiter Eintragen.", , ""
Exit Sub
End If
'Abfrage und Aufruf der MessageboxLöschen
Me.Hide
Call MessageBoxLöschen_Einblenden
End Sub

Gruß aus'm Pott
Udo
Anzeige
AW: Verbindung meiner selbstgebauten MessageBox
01.04.2024 18:40:01
Hoffi38
Hallo Udo,

was soll ich sagen, ich habe es umgeschichtet :-D und es funktioniert.
Ich bin begeistert und danke dir ganz herzlich :-)
AW: Verbindung meiner selbstgebauten MessageBox
01.04.2024 15:34:02
Hoffi38
Hallo Ralf_b,

eine einfache Massagebox kann fast jeder der sich damit etwas auseinandersetzt.
Klar ne UserForm war auch mein erster Gedanken die könnte ich ähnlich gestalten und da hätte ich dann auch keine Probleme mit der Verknüpfung / Programmierung.
Die Massagebox die ich da selber gestaltet habe als Shapegruppe ist für mich mal was neues und ich wollte das mal Probieren.
Gerade vor die Anwender ist es mal was ganz anderes :-)

Das ich vor nem Rätsel bei der Verknüpfung stehe hab ich nicht kommen sehen.

Sollte man mir hier nicht helfen können ist es halb so wild dann mach ich es über eine Userform wollte mich aber mal daran wagen :-)
Wer nicht wagt der nicht gewinnt :-)
Anzeige
AW: Verbindung meiner selbstgebauten MessageBox
01.04.2024 21:36:28
Luschi
Hallo ralf_b,

solche Verschlimmbesserungen lernt man hier: https://www.youtube.com/watch?v=2ZOAk4gdPjM
Eigentlich wäre es ja die Pflicht vom Fragesteller gewesen, seine Quelle des Erkentnisgewinns bekanntzugeben.

Gruß von Luschi
aus klein-Paris

AW: Verbindung meiner selbstgebauten MessageBox
02.04.2024 05:23:04
Hoffi38
Hallo Luschi,

dann bin ich ja froh das du meinen Beitrag ergänzt hast. Danke dafür :-)
Da es mein erster Beitrag in dieser form war, weiß ich für zukünftige Beiträge, wenn nötig bescheid.

Was meinst du denn mit Verschlimmverbesserung?

Wie du an meinem Status erkennst bin ich was meine VBA Kenntnisse angeht bescheiden unterwegs und kann deine Aussage nicht nachvollziehen!

Erkläre es doch bitte mal :-)

Gruß
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige