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

Msg_box_wenn_Text

Msg_box_wenn_Text
03.05.2021 14:32:08
Gerd
Hallo VBA Fachleute,
- ich habe eine Tabelle in der ich in einem Bereich Text mit Auswahlliste eintrage, z.B. Schlauch_DN12
- dann ist es aber notwendig, z.B. links neben dem Artikel noch die Nennlänge einzutragen
- wenn dies nicht geschieht, dann soll ein Fenster aufgehen mit Text den ich festlegen kann, z.B. Schlauchlänge eintragen!
- eine Beispieldatei habe ich vorbereitet und hochgeladen
wer kann mir hier helfen?
vorab vielen Dank
Gerd
https://www.herber.de/bbs/user/145948.xlsx

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Msg_box_wenn_Text
03.05.2021 15:03:22
Nepumuk
Hallo Gerd,
ich würde die Bedingung rechts neben der Bauteileliste vorhalten. Leider hast du mir diese vorenthalten..
Gruß
Nepumuk
AW: Msg_box_wenn_Text
03.05.2021 20:49:17
Gerd
Guten Abend Nepomuk und Herbert, vielen Dank für die schnellen und kompetenten Antworten,
- kleine Zusatzfrage: wie würde der script aussehen, wenn der Text in die Zelle links (in der die Nennlänge fehlt) eingetragen werden soll?
- wie erweitere ich den script, wenn ich weitere Materialien mit Zusatzabfrage hinzufügen möchte, einfach "copy und paste" der jetzigen scripts - mit den Anpassungen?
- bitte um Hilfestellung, vorab vielen Dank
Gerd
Anzeige
AW: Msg_box_wenn_Text
03.05.2021 22:08:46
Yal
Hallo Gerd,
am besten Pflegst Du in der Liste "Bauteilliste 1" links von der Eintrag die Liste der Nachrichten, die angezeigt werden sollen.
Also bei "Schlauch DN12", "Schlauchlänge".
Dann kann diese Eintrag verwendet, um an die Eingabe zu "erinnern":
Wenn keine Nachricht, keine Zusatzeingabe notwendig.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim btl As Range
Dim Treffer As Range
Dim Text As String
If Target.Column = 4 Then
Set btl = Range("Bautteilliste 1")
Set Treffer = btl.Find(what:=Target.Value, MatchCase:=False)
If Not Treffer Is Nothing Then
Text = Treffer.Offset(0, 1).Value
If Text  "" And Cells(Target.Row, 3) = "" Then
MsgBox "Bitte in Zelle ""C" & Target.Row & """ noch eine Eingabe: " & Text, vbCritical, "!"
GoTo Ende
End If
End If
End If
Ende:
End Sub
(Ich weiss nicht, wie die Liste Bauteilliste aussieht!)
VG
Yal
Anzeige
AW: Msg_box_wenn_Text
04.05.2021 07:35:26
Gerd
Hallo Yal,
vielen Dank, ich habe verstanden und die Lösung ist genial und kann gut erweitert werden,
ich habe dies in der Tabelle getan, nur leider funzt es nicht, was mache ich falsch?
Darf ich Dich nochmals um Hilfe bitten?
Gruß
Gerd
https://www.herber.de/bbs/user/145974.xlsm
AW: Msg_box_wenn_Text
04.05.2021 09:12:49
Nepumuk
Hallo Gerd,
Rechtsklick auf den Tabellenreiter - Code anzeigen. Folgende Prozedur einfügen:
Code:

[Cc]

Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Dim Treffer As Range Dim Text As String If Target.Column = 4 Then Set Treffer = Range("Bauteilliste_1").Find(What:=Target.Value, _ LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True) If Not Treffer Is Nothing Then Text = Treffer.Offset(0, -1).Value If Text <> "" And IsEmpty(Target.Offset(0, -1).Value) Then MsgBox "Bitte in Zelle ""C" & Target.Row & _ """ noch eine Eingabe: " & Text, vbCritical, "!" Target.Offset(0, -1).Select End If Set Treffer = Nothing End If End If End Sub

Gruß
Nepumuk
Anzeige
AW: Msg_box_wenn_Text
04.05.2021 11:50:11
Yal
Hallo zusammen,
Es fehlt nicht mehr viel:
_ das Coding soll reagieren, wenn eine Zelle sich ändert. Also muss das Coding in der Codepane der Tabelle sein, nicht in einem Modul.
_ es soll nicht die Zelle, wo man ankommt, sondern die die gerade verlassen wurde, geprüft werden.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static ZelleDavor As Range
On Error Resume Next
If ZelleDavor.Column = 4 Then Eintrag_prüfen ZelleDavor
Set ZelleDavor = Target
End Sub
Private Sub Eintrag_prüfen(ByVal Target As Range)
Dim btl As Range
Dim Treffer As Range
Dim Text As String
If Target.Column = 4 Then
Set btl = Range("Bauteilliste_1")
Set Treffer = btl.Find(what:=Target.Value, MatchCase:=False)
If Not Treffer Is Nothing Then
Text = Treffer.Offset(0, -1).Value
If Text  "" And Cells(Target.Row, 3) = "" Then
MsgBox "Bitte in Zelle ""C" & Target.Row & """ für """ & Target.Value & """" & vbCr & "noch eine Eingabe: " & Text, vbCritical, "!"
GoTo Ende
End If
End If
End If
Ende:
End Sub
Oder als Datei:
https://www.herber.de/bbs/user/145982.xlsm
Sollten der Wunsch entstehen, die Einträge nicht Links sondern rechts vom Bauteilliste_1 zu lagern, müsste man die beiden Offset(0, -1) in Offset (0, 1) ändern.
VG
Yal
Anzeige
AW: Msg_box_wenn_Text
04.05.2021 14:00:30
Gerd
Hallo Yal,
vielen Dank, mit Deiner Lösung komme ich zurecht, gut gemacht!
Ich frage mich, wenn man VBA nur relativ selten verwendet, lohnt der Aufwand sich all diese Begriffe "rein zu ziehen"?
viele Grüße
Gerd
AW: Msg_box_wenn_Text
04.05.2021 16:31:32
Yal
Hallo Gerd,
im Sinne von "Rendite" ist es ja fraglich. Im Sinne der Wissenserweiterung und der Nebeneffekte, würde ich auf alle Fälle ja sagen. Na, zugegeben: nicht ganz unparteiisch. Meinerseits habe ich spass daran. Ich helfe nicht nur, um die Leute zu helfen, sondern weil Sudoku zu langweilig ist.
Die Begrifflichkeit muss man nicht alle lernen. Man muss nur wissen, was man googeln muss (mein "Find" ist übrigens unvollständig. Schau dir den von Nepumuk, um es zu ergänzen. Es liegt daran, dass ich ausnahmsweise nicht mit Makro-Recorder gearbeitet habe, sondern es selber eingetippt. Mache ich bei "Suchen" eigentlich nie).
Danach ist nur die Frage: wie lang muss ich noch mitlaufen? Welche Risiken habe ich, wenn anderen "schneller" laufen? Hat man ein besondere Kompetenz, die einem zum Spitzenspieler macht, oder braucht man "Brücken-Kompetenz", die einem vielseitig einsetzbar macht?
Bei jungen Kollegen, die sich jegliche "digitale Vertiefung" versperren, mache ich üblicherweise keine grosse Karrierenprognose (BWL-Umfeld). Die Arbeit-Welt findet kaum ohne Computer statt. Nicht jeder muss sie programmieren können, aber ein Fahrt durch die Wüste macht man eben lieber mit jemandem, der die Mechanik des gefahrenen Autos gut versteht...
VG
Yal
Anzeige
AW: Msg_box_wenn_Text
04.05.2021 20:03:14
Gerd
Hallo Yal,
Danke, Deine Ausführungen sind hilfreich,
ich bin überrascht zu lesen, das Du viel mit dem Recorder arbeitest/hier gearbeitet hast, ich konnte mir bisher nicht ausmalen, mit dem Recorder auch Abfragen zu realisieren, bisher habe ich den recorder nur verwendet um "irgendwo hin" zu hüpfen um dann dort ein Format zu ändern oder ähnliche Kleinigkeiten.
Ich finde Deine Einstellung/Meinung interessant und Du scheinst auch in wissenschaftlichen Foren unterwegs zu sein, ich bedauere das dieses Forum es nicht zulässt, das man auch außerhalb des Forums Kontakt aufnehmen kann.
Nun denn, bis demnächst mal wieder im Excel forum oder sonstwo auf der Welt.
Danke Dir
Gerd
Anzeige
AW: Msg_box_wenn_Text
04.05.2021 13:45:49
Gerd
Guten Tag Nepomuk,
vielen Dank für die Hilfe und den Code,
ich habe mich bemüht diesen wie beschrieben einzufügen, erhalte allerdings folgende Meldung:
Laufzeitfehler 1004,
-die Methode 'Range' für das Objekt '_Worksheet' ist fehlgeschlagen
der Debugger setzt einen gelben Pfeil in die Zeile: LookIn:=xlValues, . . .
wie kann ich dies korrigieren?
Gruß
Gerd

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige