Microsoft Excel

Herbers Excel/VBA-Archiv

Bei Änderung mehrerer Zellen makro ausfü

Betrifft: Bei Änderung mehrerer Zellen makro ausfü von: Martin
Geschrieben am: 29.08.2020 14:35:06

Hallo


ich möchte bei Änderung folgender Zellen ein Makro ausführen.


Zellen B13;E13;H13; B24;E24;H24;B26;E26;H26


Mit einer Zeille schaffe ich es aber nicht mit den oben angeführten Zellen. Bitte um Hilfe.Danke.


With Target

If .Address = "$B$13" Then

If .Value = "" Then

Call Text_in_Zelle

End If

End If

End With

Betrifft: AW: Bei Änderung mehrerer Zellen makro ausfü
von: Hajo_Zi
Geschrieben am: 29.08.2020 14:48:09

In der Art
        Dim RaBereich As Range                      ' Bereich der Wirksamkeit
        Dim RaZelle As Range                        ' Variable Zelle
        Dim InS As Integer                          ' Variable Stunde
        Dim InM As Integer                          ' Variable Minute
        Set RaBereich = Range("D10:F40, H10:H40")   ' 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"), _
        '    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"))
        ' Zelle die in dem Bereich liegen auf die Varible schreiben
        ' damit werden nur noch die Zellen bearbeitet die im vorgegeben Bereich liegen
        ' jede Zelladresse ist einzeln angegeben
        Set RaBereich = Intersect(RaBereich, Range(Target.Address))
        If Not RaBereich Is Nothing Then
GrußformelHomepage

Betrifft: AW: Bei Änderung mehrerer Zellen makro ausfü
von: Daniel
Geschrieben am: 29.08.2020 15:05:05

Hi
If Instr("B13;E13;H13;B24;E24;H24;B26;E26;H26", Target.Address(0, 0)) > 0
Oder vielleicht so
Select case Target.Column
    Case 2, 5, 8
        Select case Target.Row
            Case 13, 24, 26
                Call Text_In_Zelle
        End Select
End select
Oder so
if not intersect(target, Range("B:B,E:E;H:H"), Range("13:13,24:24,26:26")) is nothing Then
Gruß Daniel

Betrifft: AW: Bei Änderung mehrerer Zellen makro ausfü
von: Dieter Klemke
Geschrieben am: 29.08.2020 15:05:48

Hallo Martin,

das Programm könnte so aussehen:
Private Sub Worksheet_Change(ByVal Target As Range)
  With Target
    Select Case .Address(False, False)
      Case "B13", "E13", "H13", "B24", "E24", "H24", "B26", "E26", "H26"
        If .Value = "" Then
          Call Text_in_Zelle
        End If
    End Select
  End With
End Sub
Viele Grüße
Dieter

Betrifft: AW: Bei Änderung mehrerer Zellen makro ausfü
von: Martin
Geschrieben am: 30.08.2020 10:44:31

Danke Dieter für deinen Vorschlag. Habe es so gemacht.

Lg Martin

Betrifft: AW: Bei Änderung mehrerer Zellen makro ausfü
von: Nepumuk
Geschrieben am: 29.08.2020 15:10:43

Hallo Martin,

würde ich so machen:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim objRange As Range, objCell As Range
    Set objRange = Intersect(Target, Range("B13,E13,H13, B24,E24,H24,B26,E26,H26"))
    If Not objRange Is Nothing Then
        For Each objCell In objRange
            If IsEmpty(objCell.Value) Then Call Text_in_Zelle
        Next
        Set objRange = Nothing
    End If
End Sub

Gruß
Nepumuk

Betrifft: AW: Bei Änderung mehrerer Zellen makro ausfü
von: Herbert_Grom
Geschrieben am: 29.08.2020 17:53:07

Hallo Martin,

ich würde das so lösen (s. Anl.).

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

Servus

Betrifft: AW: Verbessert
von: Herbert_Grom
Geschrieben am: 29.08.2020 17:56:49

Hallo Martin,

ich habe es noch einmal verbessert!

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

Servus

Betrifft: AW: Nicht SHIFT sondern STRG!!!
von: Herbert_Grom
Geschrieben am: 29.08.2020 17:59:45

Hallo Martin,

Die betreffenden Zellen zusammen markieren (STRG & Linke Maustaste) und diesem "Gebilde" dann einen Bereichsnamen geben. Auf diesen referenzierst du dann mit "Worksheet_SelectionChange".

Servus

Betrifft: AW: Nicht SHIFT sondern STRG!!!
von: Martin
Geschrieben am: 30.08.2020 10:42:54

Hallo

Danke an alle die mir hier geholfen haben.

Ich habe mich für Dieters Vorschlag entschieden.

Nochmals Danke.

Lg Martin

Betrifft: AW: Bei Änderung mehrerer Zellen makro ausfü
von: Herbert_Grom
Geschrieben am: 30.08.2020 11:41:01

Hallo Martin,

dann kannst du auch die kürzeste Variante nehmen:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   If Not Intersect(Target, Range("B13,E13,H13, B24,E24,H24,B26,E26,H26")) Is Nothing Then Call  _
Text_in_Zelle
End Sub
Servus

Beiträge aus dem Excel-Forum zum Thema "Bei Änderung mehrerer Zellen makro ausfü"