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

VBA Abfrage

VBA Abfrage
31.10.2020 07:25:11
Hess
Guten Tag
Ich mache folgende Abfrage mir Rückmeldung, welche nur einmal erscheinen soll!
Option Explicit
Public A1OK As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Wert As Double
If Target.Address(0, 0) = "B78" Then
Wert = 36
If Cells(83, 2) > Wert And Not A1OK Then
MsgBox "Die maximale Lagerkapazität von 36 Stück wird überschritten!" & vbNewLine & " _
Bitte einmalig bestätigen!", vbInformation, "Information"
A1OK = True
End If
End If
End Sub

Nun möchte ich diese Abfrage aber für mehrere Zellen machen, wobei jeweils pro Abfage die Meldung nur eimal erscheinen soll. Wie muss ich das machen?

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Abfrage
31.10.2020 07:33:03
Hajo_Zi

Dim RaBereich As Range                          ' Variable für Bereich
Dim RaZelle As Range                            ' Variable für Zelle
Set RaBereich = Range("L22:M39, O21:O26")       ' Bereich der Wirksamkeit
' noch mehr Bereiche
'Set RaBereich = Union(Range("C11:AG11 , C13:AG13, C15:AG15 , C17:AG17"), _
'    Range("C35:AE35, C37:AE37, C43:AG43, C45:AG45 , C47:AG47 , C49:AG49"), _
'    Range("C67:AF67 , C69:AF69 , C75:AG75 , C77:AG77 , C79:AG79 , C81:AG81"), _
'    Range("C99:AF99 , C101:AF101, C107:AG107 , C109:AG109 , C111:AG111"), _
'    Range("C127:AG127 , C129:AG129 , C131:AG131 , C133:AG133 , C139:AF139"), _
'    Range("C155:AG155, C157:AG157 , C159:AG159 , C161:AG161 , C163:AG163"), _
'    Range("C179:AF179 , C181:AF181, C187:AG187 , C189:AG189 , C191:AG191"))
' Union 30 Argumente zu je 255 Zeichen
' ab Vesion XP braucht der Schutz nicht aufgehoben werden
' Formatierung bei Schutz kann über Dialog Schutz eingestellt werden
' Zelle die in dem Bereich liegen auf die Variable schreiben
' damit werden nur noch die Zellen bearbeitet die im vorgegeben Bereich liegen
' jede Zelladresse ist einzeln angegeben
Set RaBereich = Intersect(RaBereich, Target)
If Not RaBereich Is Nothing Then
'ActiveSheet.Unprotect ("Passwort")
For Each RaZelle In RaBereich
If Razelle > Wert And Not A1OK Then
MsgBox "Die maximale Lagerkapazität von 36 Stück wird überschritten!" & vbNewLine & " _
Bitte einmalig bestätigen!", vbInformation, "Information"
A1OK = True
Exit For
End If
Next RaBereich
Endif
Set RaBereich = Nothing                         ' Variable leeren

Anzeige
AW: VBA Abfrage
01.11.2020 08:32:17
Hess
Besten Dank!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige