Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1472to1476
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

Change Ereignis

Change Ereignis
04.02.2016 11:19:05
walter
Guten Morgen,
ich habe folgendes Makro im

Private Sub Worksheet_Change(ByVal Target As Range):
If WorksheetFunction.CountA(Range("B23:C57"))  0 Then
ThisWorkbook.Sheets("Angebote").Range("C58").Value = ""
ThisWorkbook.Sheets("Angebote").Range("C122").Value = ""
ThisWorkbook.Sheets("Angebote").OptionButton1.BackColor = RGB(0, 255, 0)   'grün
ThisWorkbook.Sheets("Angebote").OptionButton1.Caption = "Seite 1 aktiv"
End If
If WorksheetFunction.CountA(Range("B87:C121"))  0 Then
ThisWorkbook.Sheets("Angebote").Range("C58").Value = "Seite 1 von 2 Seiten"
ThisWorkbook.Sheets("Angebote").Range("C122").Value = "Seite 2 von 2 Seiten"
ThisWorkbook.Sheets("Angebote").OptionButton2.BackColor = RGB(0, 255, 0)   'grün
ThisWorkbook.Sheets("Angebote").OptionButton2.Caption = "Seite 2 aktiv"
End If
End Sub
jetzt möchte ich gern noch dies hinzufügen:
einen Textbaustein hinzufügen:
"pos": = "Pos. 01 Höhe 1800:1500 mm"
"ad": = "folgende Adresse:"
leider klappt es nicht,
mfg
walter mb

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Change Ereignis
04.02.2016 12:57:40
fcs
Hallo Walter,
leider fehlen noch Infos:
Wann und wo sollen diese zusätzlichen Infos eingetragen werden?
Franz

Hier...Info
04.02.2016 13:06:48
walter
Hallo Franz,
in diesem Bereich.
Wenn man also darin z.b. pos eingibt soll der Text erscheinen.
mfg walter mb

Sorry
04.02.2016 13:37:40
walter
Hallo Franz,
anbei:
Range("C26:C50, C95:C118, C165:C188")
mfg
walter mb

AW: Sorry
05.02.2016 08:20:15
fcs
Halo Walter,
hier das Makro mit den Anpassungen um kurze Texteinträge zu erweitern.
Gruß
Franz
Private Sub Worksheet_Change(ByVal Target As Range):
Dim rngZelle As Range, rngChange As Range
Dim wksAngebote As Object
Set wksAngebote = ThisWorkbook.Sheets("Angebote")
Select Case WorksheetFunction.CountA(Range("B23:C57"))
Case Is  0
wksAngebote.Range("C58").Value = ""
wksAngebote.Range("C122").Value = ""
wksAngebote.OptionButton1.BackColor = RGB(0, 255, 0)   'grün
wksAngebote.OptionButton1.Caption = "Seite 1 aktiv"
End Select
Select Case WorksheetFunction.CountA(Range("B87:C121"))
Case Is  0
wksAngebote.Range("C58").Value = "Seite 1 von 2 Seiten"
wksAngebote.Range("C122").Value = "Seite 2 von 2 Seiten"
wksAngebote.OptionButton2.BackColor = RGB(0, 255, 0)   'grün
wksAngebote.OptionButton2.Caption = "Seite 2 aktiv"
End Select
Set rngChange = Application.Intersect(Target, Range("C26:C50, C95:C118, C165:C188"))
If Not rngChange Is Nothing Then
Application.EnableEvents = False
For Each rngZelle In rngChange
With rngZelle
Select Case LCase(.Text)
Case "ad": .Value = "folgende Adresse:"
Case "pos": .Value = "Pos. 01 Höhe 1800:1500 mm"
Case Else
'do nothing
End Select
End With
Next
Application.EnableEvents = True
End If
End Sub

Anzeige
AW: Sorry
05.02.2016 11:01:14
walter
Hallo Franz,
leider funktioniert es nicht.
Es werden keine Nummern der Seiten angezeigt und die Textbausteine ebenfalls
nicht.
Anbei das gesamt Makro:
Private Sub Worksheet_Change(ByVal Target As Range):
Dim rngZelle As Range, rngChange As Range
Dim wksAngebote As Object
Set wksAngebote = ThisWorkbook.Sheets("Angebote")
Select Case WorksheetFunction.CountA(Range("B23:C57"))
Case Is  0
'wksAngebote.Range("C58").Value = ""
'wksAngebote.Range("C122").Value = ""
wksAngebote.OptionButton1.BackColor = RGB(0, 255, 0)   'grün
wksAngebote.OptionButton1.Caption = "Seite 1 aktiv"
End Select
Select Case WorksheetFunction.CountA(Range("B87:C121"))
Case Is  0
wksAngebote.Range("C58").Value = "Seite 1 von 2 Seiten"
wksAngebote.Range("C122").Value = "Seite 2 von 2 Seiten"
wksAngebote.OptionButton2.BackColor = RGB(0, 255, 0)   'grün
wksAngebote.OptionButton2.Caption = "Seite 2 aktiv"
End Select
Select Case WorksheetFunction.CountA(Range("B151:C185"))
Case Is  0
wksAngebote.Range("C58").Value = "Seite 1 von 3 Seiten"
wksAngebote.Range("C122").Value = "Seite 2 von 3 Seiten"
wksAngebote.Range("C186").Value = "Seite 3 von 3 Seiten"
wksAngebote.OptionButton3.BackColor = RGB(0, 255, 0)   'grün
wksAngebote.OptionButton3.Caption = "Seite 3 aktiv"
End Select
Select Case WorksheetFunction.CountA(Range("B215:C249"))
Case Is  0
wksAngebote.Range("C58").Value = "Seite 1 von 4 Seiten"
wksAngebote.Range("C122").Value = "Seite 2 von 4 Seiten"
wksAngebote.Range("C186").Value = "Seite 3 von 4 Seiten"
wksAngebote.Range("C250").Value = "Seite 4 von 4 Seiten"
wksAngebote.OptionButton4.BackColor = RGB(0, 255, 0)   'grün
wksAngebote.OptionButton4.Caption = "Seite 4 aktiv"
End Select
Select Case WorksheetFunction.CountA(Range("B279:C313"))
Case Is  0
wksAngebote.Range("C58").Value = "Seite 1 von 5 Seiten"
wksAngebote.Range("C122").Value = "Seite 2 von 5 Seiten"
wksAngebote.Range("C186").Value = "Seite 3 von 5 Seiten"
wksAngebote.Range("C250").Value = "Seite 4 von 5 Seiten"
wksAngebote.Range("C314").Value = "Seite 5 von 5 Seiten"
wksAngebote.OptionButton5.BackColor = RGB(0, 255, 0)   'grün
wksAngebote.OptionButton5.Caption = "Seite 5 aktiv"
End Select
Select Case WorksheetFunction.CountA(Range("B343:C377"))
Case Is  0
wksAngebote.Range("C58").Value = "Seite 1 von 6 Seiten"
wksAngebote.Range("C122").Value = "Seite 2 von 6 Seiten"
wksAngebote.Range("C186").Value = "Seite 3 von 6 Seiten"
wksAngebote.Range("C250").Value = "Seite 4 von 6 Seiten"
wksAngebote.Range("C314").Value = "Seite 5 von 6 Seiten"
wksAngebote.Range("C378").Value = "Seite 6 von 6 Seiten"
wksAngebote.OptionButton6.BackColor = RGB(0, 255, 0)   'grün
wksAngebote.OptionButton6.Caption = "Seite 6 aktiv"
End Select
Set rngChange = Application.Intersect(Target, Range("C26:C50, C87:C121, C151:C185, C215: _
C249, C279:C313, C343:C377"))
If Not rngChange Is Nothing Then
Application.EnableEvents = False
For Each rngZelle In rngChange
With rngZelle
Select Case LCase(.Text)
' Case "ad": .Value = "folgende Adresse:"
Case "pos": .Value = "Pos. 01 Höhe 1800:1500 mm"
Case Else
'do nothing
End Select
End With
Next
Application.EnableEvents = True
End If
End Sub
mfg
walter mb

Anzeige
AW: Sorry
05.02.2016 11:10:30
walter
Hallo Franz,
leider funktioniert es nicht.
Es werden keine Nummern der Seiten angezeigt und die Textbausteine ebenfalls
nicht.
Anbei das gesamt Makro:
Private Sub Worksheet_Change(ByVal Target As Range):
Dim rngZelle As Range, rngChange As Range
Dim wksAngebote As Object
Set wksAngebote = ThisWorkbook.Sheets("Angebote")
Select Case WorksheetFunction.CountA(Range("B23:C57"))
Case Is  0
'wksAngebote.Range("C58").Value = ""
'wksAngebote.Range("C122").Value = ""
wksAngebote.OptionButton1.BackColor = RGB(0, 255, 0)   'grün
wksAngebote.OptionButton1.Caption = "Seite 1 aktiv"
End Select
Select Case WorksheetFunction.CountA(Range("B87:C121"))
Case Is  0
wksAngebote.Range("C58").Value = "Seite 1 von 2 Seiten"
wksAngebote.Range("C122").Value = "Seite 2 von 2 Seiten"
wksAngebote.OptionButton2.BackColor = RGB(0, 255, 0)   'grün
wksAngebote.OptionButton2.Caption = "Seite 2 aktiv"
End Select
Select Case WorksheetFunction.CountA(Range("B151:C185"))
Case Is  0
wksAngebote.Range("C58").Value = "Seite 1 von 3 Seiten"
wksAngebote.Range("C122").Value = "Seite 2 von 3 Seiten"
wksAngebote.Range("C186").Value = "Seite 3 von 3 Seiten"
wksAngebote.OptionButton3.BackColor = RGB(0, 255, 0)   'grün
wksAngebote.OptionButton3.Caption = "Seite 3 aktiv"
End Select
Select Case WorksheetFunction.CountA(Range("B215:C249"))
Case Is  0
wksAngebote.Range("C58").Value = "Seite 1 von 4 Seiten"
wksAngebote.Range("C122").Value = "Seite 2 von 4 Seiten"
wksAngebote.Range("C186").Value = "Seite 3 von 4 Seiten"
wksAngebote.Range("C250").Value = "Seite 4 von 4 Seiten"
wksAngebote.OptionButton4.BackColor = RGB(0, 255, 0)   'grün
wksAngebote.OptionButton4.Caption = "Seite 4 aktiv"
End Select
Select Case WorksheetFunction.CountA(Range("B279:C313"))
Case Is  0
wksAngebote.Range("C58").Value = "Seite 1 von 5 Seiten"
wksAngebote.Range("C122").Value = "Seite 2 von 5 Seiten"
wksAngebote.Range("C186").Value = "Seite 3 von 5 Seiten"
wksAngebote.Range("C250").Value = "Seite 4 von 5 Seiten"
wksAngebote.Range("C314").Value = "Seite 5 von 5 Seiten"
wksAngebote.OptionButton5.BackColor = RGB(0, 255, 0)   'grün
wksAngebote.OptionButton5.Caption = "Seite 5 aktiv"
End Select
Select Case WorksheetFunction.CountA(Range("B343:C377"))
Case Is  0
wksAngebote.Range("C58").Value = "Seite 1 von 6 Seiten"
wksAngebote.Range("C122").Value = "Seite 2 von 6 Seiten"
wksAngebote.Range("C186").Value = "Seite 3 von 6 Seiten"
wksAngebote.Range("C250").Value = "Seite 4 von 6 Seiten"
wksAngebote.Range("C314").Value = "Seite 5 von 6 Seiten"
wksAngebote.Range("C378").Value = "Seite 6 von 6 Seiten"
wksAngebote.OptionButton6.BackColor = RGB(0, 255, 0)   'grün
wksAngebote.OptionButton6.Caption = "Seite 6 aktiv"
End Select
Set rngChange = Application.Intersect(Target, Range("C26:C50, C87:C121, C151:C185, C215: _
C249, C279:C313, C343:C377"))
If Not rngChange Is Nothing Then
Application.EnableEvents = False
For Each rngZelle In rngChange
With rngZelle
Select Case LCase(.Text)
' Case "ad": .Value = "folgende Adresse:"
Case "pos": .Value = "Pos. 01 Höhe 1800:1500 mm"
Case Else
'do nothing
End Select
End With
Next
Application.EnableEvents = True
End If
End Sub
mfg
walter mb

Anzeige
Zusatz Fehler
05.02.2016 11:12:31
walter
Hallo Franz,
wenn ich die Tabellen Blank habe klappt es,
habe ich einen Text drin klappt es nicht mehr mit dem Zusatztext
und auch keine Nummerierung.
mfg
walter mb

AW: Zusatz Fehler
05.02.2016 12:47:57
fcs
Hallo Walter,
es gibt scheinbar "unglückliche" Rückkopplungseffekte wenn das Makro Werte in die Zellen in Spalte B oder C schreibt.
Ich hab das Makro jetzt so angepasst, dass die Ereignismakros zu Beginn des Makros deaktiviert und am Ende wieder aktiviert werden. Dadurch wird das erneute Starten des Makros verhindert, wenn das Makro einen Zellwert ändert.
Gruß
Franz
Private Sub Worksheet_Change(ByVal Target As Range):
Dim rngZelle As Range, rngChange As Range
Dim wksAngebote As Object
Set wksAngebote = ThisWorkbook.Sheets("Angebote")
Application.EnableEvents = False
Select Case WorksheetFunction.CountA(Range("B23:C57"))
Case Is  0
'wksAngebote.Range("C58").Value = ""
'wksAngebote.Range("C122").Value = ""
wksAngebote.OptionButton1.BackColor = RGB(0, 255, 0)   'grün
wksAngebote.OptionButton1.Caption = "Seite 1 aktiv"
End Select
Select Case WorksheetFunction.CountA(Range("B87:C121"))
Case Is  0
wksAngebote.Range("C58").Value = "Seite 1 von 2 Seiten"
wksAngebote.Range("C122").Value = "Seite 2 von 2 Seiten"
wksAngebote.OptionButton2.BackColor = RGB(0, 255, 0)   'grün
wksAngebote.OptionButton2.Caption = "Seite 2 aktiv"
End Select
Select Case WorksheetFunction.CountA(Range("B151:C185"))
Case Is  0
wksAngebote.Range("C58").Value = "Seite 1 von 3 Seiten"
wksAngebote.Range("C122").Value = "Seite 2 von 3 Seiten"
wksAngebote.Range("C186").Value = "Seite 3 von 3 Seiten"
wksAngebote.OptionButton3.BackColor = RGB(0, 255, 0)   'grün
wksAngebote.OptionButton3.Caption = "Seite 3 aktiv"
End Select
Select Case WorksheetFunction.CountA(Range("B215:C249"))
Case Is  0
wksAngebote.Range("C58").Value = "Seite 1 von 4 Seiten"
wksAngebote.Range("C122").Value = "Seite 2 von 4 Seiten"
wksAngebote.Range("C186").Value = "Seite 3 von 4 Seiten"
wksAngebote.Range("C250").Value = "Seite 4 von 4 Seiten"
wksAngebote.OptionButton4.BackColor = RGB(0, 255, 0)   'grün
wksAngebote.OptionButton4.Caption = "Seite 4 aktiv"
End Select
Select Case WorksheetFunction.CountA(Range("B279:C313"))
Case Is  0
wksAngebote.Range("C58").Value = "Seite 1 von 5 Seiten"
wksAngebote.Range("C122").Value = "Seite 2 von 5 Seiten"
wksAngebote.Range("C186").Value = "Seite 3 von 5 Seiten"
wksAngebote.Range("C250").Value = "Seite 4 von 5 Seiten"
wksAngebote.Range("C314").Value = "Seite 5 von 5 Seiten"
wksAngebote.OptionButton5.BackColor = RGB(0, 255, 0)   'grün
wksAngebote.OptionButton5.Caption = "Seite 5 aktiv"
End Select
Select Case WorksheetFunction.CountA(Range("B343:C377"))
Case Is  0
wksAngebote.Range("C58").Value = "Seite 1 von 6 Seiten"
wksAngebote.Range("C122").Value = "Seite 2 von 6 Seiten"
wksAngebote.Range("C186").Value = "Seite 3 von 6 Seiten"
wksAngebote.Range("C250").Value = "Seite 4 von 6 Seiten"
wksAngebote.Range("C314").Value = "Seite 5 von 6 Seiten"
wksAngebote.Range("C378").Value = "Seite 6 von 6 Seiten"
wksAngebote.OptionButton6.BackColor = RGB(0, 255, 0)   'grün
wksAngebote.OptionButton6.Caption = "Seite 6 aktiv"
End Select
Set rngChange = Application.Intersect(Target, _
Range("C26:C50, C87:C121, C151:C185, C215:C249, C279:C313, C343:C377"))
If Not rngChange Is Nothing Then
For Each rngZelle In rngChange
With rngZelle
Select Case LCase(.Text)
Case "ad": .Value = "folgende Adresse:"
Case "pos": .Value = "Pos. 01 Höhe 1800:1500 mm"
Case Else
'do nothing
End Select
End With
Next
End If
Application.EnableEvents = True
End Sub

Anzeige
Danke Franz, habe dann zusätzlich... -)
05.02.2016 13:35:22
walter

Bitte nur kurz eine kleine Frage
05.02.2016 15:20:34
walter
Hallo FRanz,
habe dein Makro genommen.
Ich habe mehrere Tabellen mit unterschiedlichen Namen allerdings
fangen alle mit "Angebote" an z.b. "Angebote Mu" oder "Angebote Ha"
Was setze ich den hier rein:
Set wksAngebote = ThisWorkbook.Sheets("Angebote")
Set wksAngebote = ThisWorkbook.Sheets("Angebote & ***")
gruß
walter mb

Bitte nur kurz eine kleine Frage
05.02.2016 17:43:24
walter
Hallo FRanz,
habe dein Makro genommen.
Ich habe mehrere Tabellen mit unterschiedlichen Namen allerdings
fangen alle mit "Angebote" an z.b. "Angebote Mu" oder "Angebote Ha"
Was setze ich den hier rein:
Set wksAngebote = ThisWorkbook.Sheets("Angebote")
Set wksAngebote = ThisWorkbook.Sheets("Angebote & ***")
gruß
walter mb

Anzeige
AW: Bitte nur kurz eine kleine Frage
06.02.2016 13:58:10
fcs
Hallo Walter,
ohne die Blätter und den Speicherort des/der Makros genau zu kennen ist eine korrekte Angabe nicht möglich.
Zwei Varianten:
A:
If Left(ActiveSheet.Name, 8)  "Angebote" Then Exit Sub
Set wksAngebote = ActiveSheet
oder - wenn das Ereignismakro im VBA-Editor jeweils unter dem Blatt "Angebote xxx" angelegt ist
Set wksAngebote = Me
Gruß
Franz

Habe anders gelöst -)
05.02.2016 13:03:57
walter
Hallo Franz,
ich habe die Nummerierung als eigenständiges Makro festgelegt.
Wenn ich nun die Seitn kopiere, wird anschließend die Nummerierung
durchgeführt.
Somit bleibt mein Change Ereignis,
herzlichen Dank
und
schönes Wochenende,
mfg
walter mb
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige