Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1516to1520
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
VBA MSG Box vor Ausführen
16.10.2016 12:14:18
Andi
Hallo Excel-Experten,
kleines Problem- große Wirkung!
Bei meinen Moderaten VBA Anfängerkenntnissen benötige ich Hilfe.
Bin auf der Suche nach einer VBA Funktion, die mir in meiner Zeile, wo ich mich befinde, eine Zelle, (es ist immer die "Zelle B") erst Abfragt, ob dort ein Text eingetragen ist.
Wenn ja- soll sich eine MSG -Box öffnen- es befindet sich -"Anzeige des Textes" in der Zelle B.
Nun soll ich auswählen können-
1. Abbrechen mit Schließen der MSG-Box
2. Weiter, dann wird der Inhalt belassen und es geht eine Spalte tiefer.
3. Ändern, dann kann ich den Inhalt in der Zelle B ändern, und es soll weiter nach unten gesprungen werden. – denke aber das die 3 überflüssig ist- könnte ich ja mit dem Abbrechen gleichsetzen.
Geht auch folgendes?
Beim Ausführen Command Button1- da geht’s weiter nach unten.
Ist die Nummerierung in Spalte A zu Ende, soll sie sich um eine Zahl erhöhen, wenn ich mich in der Zeile befinde wo sie zu Ende ist.
Kann dabei die Formatierung, sowie die Rahmen der darüber liegenden Zellen A-N mit übertragen werden?
Zum Testen schicke ich mal die Datei mit.

Die Datei https://www.herber.de/bbs/user/108810.xlsm wurde aus Datenschutzgründen gelöscht

Nun komme ich nicht weiter.
Grüße Andi

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA MSG Box vor Ausführen
16.10.2016 12:22:34
Hajo_Zi
Halo Andi,
bei MsgBox hast Du nur vorgegebene Antworten.
Was Du machen willst ist mir nicht klar.
starte den VBA Editor (Alt+F11), Bild sollte zweigeteilt sein ansonsten Strg+R, Doppelklick auf Deine Datei, Doppelklick auf Deine Tabelle, Code ins rechte Fenster kopieren, VBA Editor schließen.
Das Makro wird automatisch gestartet.
Der Code wirkt nur in dieser Tabelle.
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'* H. Ziplies                                  *
'* 16.10.16                                    *
'* erstellt von HajoZiplies@web.de             *
'* http://Hajo-Excel.de/
' Füllfarbe
' für Schrift RaZelle.Font.ColorIndex
Dim RaBereich As Range                          ' Variable für Bereich
Dim RaZelle As Range                            ' Variable für Zelle
Set RaBereich = Range("B:B")                    ' Bereich der Wirksamkeit
Set RaBereich = Intersect(RaBereich, Target)
If Not RaBereich Is Nothing Then
'ActiveSheet.Unprotect ("Passwort")
For Each RaZelle In RaBereich
If Not IsNumeric(RaZelle) Then
Dim InMsgBox As Integer
InMsgBox = MsgBox("Es steht Text in Zelle " & RaZelle.Address & " ist das ok?",  _
vbYesNoCancel + _
vbQuestion, "Löschabfrage ?")
Select Case InMsgBox
Case 6
MsgBox "Ja"
Case 7
MsgBox "Nein"
Case 2
MsgBox "Abbrechen"
End Select
End If
Next RaZelle
'ActiveSheet.protect ("Passwort")
End If
Set RaBereich = Nothing                         ' Variable leeren
End Sub

Anzeige
AW: VBA MSG Box vor Ausführen
16.10.2016 13:06:15
Andi
Hallo Hajo,
danke für die Mühe- hab alles so gemacht, wie beschrieben- es ändert sich aber gar nix in meine Tabelle.
Der MSG Tip- so wie von Dir vorgeschlagen- sieht sicherlich gut aus- bekomme es nur nicht zum laufen.
Es tut sich auch hier nix.
Beim Ausführen Command Button1- da geht’s weiter nach unten.
Ist die Nummerierung in Spalte A zu Ende, soll sie sich um eine Zahl erhöhen, wenn ich mich in der Zeile befinde wo sie zu Ende ist.
Kann dabei die Formatierung, sowie die Rahmen der darüber liegenden Zellen A-N mit übertragen werden
?

Wollte die angefragten Funktionen meiner "Ausführen Command Button1" CMD zuordnen.
Private Sub CommandButton1_Click()
Dim z As Long
Dim r As Long
Cells(ActiveCell.Row, 1).Interior.Color = vbGreen '  das Grün
If (ActiveCell.Row Mod 1)  0 Then
ActiveCell.Offset(1).Select
Else
ActiveCell.Offset(1).Select
End If
End Sub

Danke erst mal Andi
Anzeige
AW: VBA MSG Box vor Ausführen
16.10.2016 18:37:02
Michael
Hi zusammen,
Andi hatte die Frage so ähnlich anscheinend bereits gestellt (war dort unbeantwortet, und ich habe es als doppelt gekennzeichnet).
Jedenfalls ist die Beispieldatei so weit aufs Wesentliche beschränkt, daß ich so meine Zweifel habe, ob es Andi gelingt, die Lösung aus der Beispieldatei in die "echte" zu übertragen...
Nichtsdestotrotz denke ich, daß so etwas gemeint ist:
Option Explicit
Private Sub CommandButton1_Click()
Dim z As Long
Dim r As Long
Cells(ActiveCell.Row, 1).Interior.Color = vbGreen '  das Grün
'   If (ActiveCell.Row Mod 1)  0 Then
'      ActiveCell.Offset(1).Select
'     Else
'      ActiveCell.Offset(1).Select
'   End If
ActiveCell.Offset(1).Select
r = ActiveCell.Row
If Range("A" & r) = "" Then
Range("A" & r).Value = Range("A" & r - 1).Value + 1
Range("A" & r - 1 & ":N" & r - 1).Copy
Range("A" & r).PasteSpecial xlPasteFormats
Cells(ActiveCell.Row, 1).Interior.Color = xlNone '  das Grün wech
End If
TB_Wert = Trim(LTrim(Range("B" & r).Text))
If TB_Wert = "" Then TextBox1.Value = "-leer-" Else TextBox1.Value = TB_Wert
End Sub
Private Sub UserForm_Initialize()
TB_Wert = Trim(LTrim(TB_Wert))
If TB_Wert = "" Then TextBox1.Value = "-leer-" Else TextBox1.Value = TB_Wert
End Sub

TB_Wert ist als Public in Modul2 deklariert und wird in "DieseArbeitsmappe" zugewiesen:
Option Explicit
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel  _
As Boolean)
If ActiveSheet.Name = "Bearbeiten" Then
If Target.Column = 3 Then
Cancel = True
TB_Wert = Range("B" & Target.Row).Text
UserForm1.Show  'Userform1 mit Doppelklick
End If
Else
If Target.Column = 3 Then
Cancel = True
TB_Wert = Range("B" & Target.Row).Text
UserForm1.Show  'Userform1 mit Doppelklick
End If
End If
End Sub
Die Datei... https://www.herber.de/bbs/user/108814.xlsm
... spart sich die MsgBox; vielmehr habe ich ein Textfeld in die Userform gesetzt, das den jeweiligen Inhalt aus Spalte B anzeigt: hier könnte man Änderungen vornehmen und mit einem weiteren Button in Bxxx übernehmen.
Schöne Grüße,
Michael
Anzeige
AW: VBA MSG Box vor Ausführen
16.10.2016 19:39:59
Andi
Danke Michael-
genau sowas habe ich gemeint- und ich konnte es sogar in die "große" Datei einarbeiten.
Großes Lob und Respekt.
Grüße Andi
very nice, danke für die Rückmeldung
16.10.2016 19:56:01
Michael
Hi Andi,
freut mich, wenn es läuft, und danke für das Lob.
Zu Hajos Ehrenrettung sei erwähnt, daß ich Deine Vorgehensweise ja schon von einem früheren Post kannte und deshalb eher erahnen konnte als er, worauf Du hinauswillst.
Happy Exceling rundherum & Grüße,
Michael

113 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige