Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1640to1644
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
Wenn Dann mit mehreren Bedingungen
04.09.2018 08:00:49
Armin
Moin zusammen,
Stück weit peinlich ist es mir ja schon.
Aber ich steh hier wie ein Ochs vorm Berg und komm nicht voran.
Ich möchte wenn zwei Bedingungen zutreffen das sich eine Eingabebox öffnet und ich was eintragen kann.
Irgendwie hab ich mir aber eine Endlosschleife gebaut.

For i = 8 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(i, 8) >= 1000 And Cells(i, 14)  201612 Then
sPSP = Application.InputBox(Prompt:="PSP Element eingeben", Title:="Abfrage", Type:=2)
ActiveCell.Value = sPSP
End If
Next i

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn Dann mit mehreren Bedingungen
04.09.2018 09:14:35
ransi
Hallo,
Wie startest du die Prozedur?
Was soll passieren wenn beide Bedingungen=Wahr? Wenn dann immer die ActiveCell beschrieben werden soll machts wenig sinn...
Ransi
AW: Wenn Dann mit mehreren Bedingungen
04.09.2018 09:56:51
Armin
Moin Ransi,
also das Konstukt Drumherum sieht so aus

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ErrExit
Dim c As Range
Dim mPSP As String
Dim mCostCenter As Double
Const myCol = 10 'Eingabespalte anpassen!
mPSP = Worksheets("Hilfstabellen").Range("F2")
mCostCenter = Worksheets("Hilfstabellen").Range("E2")
If Not Intersect(Target, Me.Columns(myCol)) Is Nothing Then
Application.EnableEvents = False
For Each c In Intersect(Target, Me.Columns(myCol))
If IsEmpty(c.Offset(, 4)) And IsEmpty(c.Offset(, 7)) Then
c.Offset(, 4).Value = IIf(IsEmpty(c), Empty, mCostCenter)                                  _
'Kostenstelle setzen
If c.Offset(, -2) >= 1000 Then c.Offset(, 5).Value = IIf(IsEmpty(c), Empty, mPSP)          _
'PSP Element stzen
c.Offset(, 7).Value = IIf(IsEmpty(c), Empty, Application.UserName)                         _
'Bearbeiter setzen
End If
Next
End If
'For i = 8 To Cells(Rows.Count, 1).End(xlUp).Row
'If Cells(i, 8) >= 1000 And Cells(i, 14)  201612 Then
'    sPSP = Application.InputBox(Prompt:="PSP Element eingeben", Title:="Abfrage", Type:=2)
'    ActiveCell.Value = sPSP
'End If
'Next i
aufräumen:
Application.EnableEvents = True
Exit Sub
ErrExit:
'Fehlerbehandlung
Resume aufräumen
End Sub
Gruß aus Hamburg
Armin
Anzeige
AW: Wenn Dann mit mehreren Bedingungen
04.09.2018 19:05:04
Robert
Hallo Armin,
wenn die Bedingungen erfüllt sind und die Eingaben in der Messagebox in die aktive Zelle geschrieben wurden, musst Du die For-Schleife beenden, sonst läuft sie weiter bis zur letzten Zelle der Spalte A:
For i = 8 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(i, 8) >= 1000 And Cells(i, 14)  201612 Then
sPSP = Application.InputBox(Prompt:="PSP Element eingeben", Title:="Abfrage", Type:=2)
ActiveCell.Value = sPSP
Exit For
End If
Next i
Gruß
Robert
AW: Wenn Dann mit mehreren Bedingungen
05.09.2018 07:50:52
Armin
Moin Robert,
das hat es leider nicht so ganz gebracht.
Weil er ja diese Schleife immer wieder startet sobald ich eine Änderung im Blatt vornehme.
Ich glaub ich hab den Part komplett verkehrt eingehängt.
Anzeige
AW: Wenn Dann mit mehreren Bedingungen
05.09.2018 16:20:41
Robert
Hallo Armin,
wann soll die For-Schleife denn startendenn starten? Wenn die Änderung im Blatt in der Spalte J statt findet? Dann müsste der Teil innerhalb des If-Blocks
If Not Intersect(Target, Me.Columns(myCol)) Is Nothing Then
End If

gesetzt werden.
Gruß
Robert
AW: Wenn Dann mit mehreren Bedingungen
06.09.2018 09:19:51
Armin
Moin Robert,
also wenn ich in (*i,J) etwas eintrage wird in (i,N) und (i,O) die mCostCenter und mPSP eingetragen und in (i,Q) den Namen des Eintragenden.
Wenn sich nun in (i,N) die Kostenstelle ändert und der eingetragene Wert in (i,H) >= 1000 € ist dann muss in (i,H) ein neues PSP eingetragen werden.
Gruß
Armin
*i = aktuelle Zeile
P. S.: Eine Datenbanklösung ist in Arbeit. Aber lange noch nicht Einsatzbereit.
Anzeige
AW: Wenn Dann mit mehreren Bedingungen
06.09.2018 10:47:09
Robert
Hallo Armin,
verstehe ich das richtig? In dem Change-Ereignis sollen 2 Schleifen laufen. Die erste, wenn Änderungen in der Spalte J eingegeben wurden. Dann werden in Deinem Makro die Spalten N (Kostenstelle), O (PSP) und Q (Namen) befüllt.
In einer zweiten Schleife soll dann geprüft werden, ob in der Spalte N die Kostenstelle geändert wird. Ich gehe mal davon aus, Änderungen aufgrund der ersten Schleife sollen dabei nicht berücksichtigt werden. Diese hätte man ja innerhalb der ersten Schleife abfangen können.
Für manuelle Änderungen in der Spalte N kannst Du anstelle Deiner auskommentierten For-Schleife folgende einfügen:
'Bei Änderungen in Spalte N  neues PSP in Spalte H falls H >= 1000
If Not Intersect(Target, Me.Columns(14)) Is Nothing Then
For Each c In Intersect(Target, Me.Columns(14))
If c.Offset(, -6) >= 1000 Then  'falls  Spalte H größer/gleich 1000 MsgBox anzeigen
c.Offset(, -6) = Application.InputBox(Prompt:="PSP Element eingeben", Title:="Abfrage", _
Type:=2)
End If
Next
End If

Damit wird geprüft, ob in Spalte N was eingetragen wurde und in der Spalte H ein Wert größer/gleich 1000 steht. In dem Fall erscheint eine entsprechende Eingabemöglichkeit (Inputbox).
Gruß
Robert
Anzeige
AW: Wenn Dann mit mehreren Bedingungen
06.09.2018 11:35:13
Armin
Hi Robert,
Suuuuuuuper. Genauso.
Nur bei den Spalten bin wohl etwas durcheinander gekommen.
Bitte entschuldige aber das ist ja die kleinste Hürde.
'Bei Änderungen in Spalte N  neues PSP in Spalte O falls H >= 1000
If Not Intersect(Target, Me.Columns(14)) Is Nothing Then
For Each c In Intersect(Target, Me.Columns(14))
If c.Offset(, -6) >= 1000 Then 'falls  Spalte H größer/gleich 1000 MsgBox anzeigen
c.Offset(, 1) = Application.InputBox(Prompt:="PSP Element eingeben", Title:="Abfrage",  _
_
Type:=2)
End If
Next
End If

Danke Dir vielmals.
Gruß aus Hamburg
Armin
Anzeige
Gerne und Danke für die Rückmeldung (owT)
06.09.2018 14:01:27
Robert
AW: Wenn Dann mit mehreren Bedingungen
04.09.2018 10:36:49
Armin
.

354 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige