Anzeige
Archiv - Navigation
1192to1196
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
walli
Guten Tag,
ich möchte gern das Worksheet_Change nur für die
Tabelle "Test" gilt.
Leider klappt es nicht.
Wenn ich in der Tabelle einen Wert Eingebe, wird die Tabelle
"Daten" aktiviert.
Private Sub Worksheet_Change(ByVal Target As Range)
If Sheets("Daten").Activate Then
Exit Sub
Else
Sheets("Test").Select
. . .
mfg walli
AW: Change Ereignis
07.01.2011 11:34:26
Hajo_Zi
Hallo Walli,
löschen diesen Code
If Sheets("Daten").Activate Then
Exit Sub
Else
Sheets("Test").Select

AW: Change Ereignis
07.01.2011 11:44:45
walli
Hallo Hajo,
habe ich gemacht.
Wenn ich in der Tabelle Daten etwas kopiere ezc.
wird leider das Makro
Private Sub Worksheet_Change(ByVal Target As Range)
aktiviert und die Zeile
Sheets("Test").Select
ist GELB.
Wenn ich F5 drücke alles normal.
Überings steht das Makro in der Tabelle "Test"
mfg walli
AW: Change Ereignis
07.01.2011 12:14:14
Reinhard
Hallo Walli,
wie soll da was gelb markiert werden wenn da gar nix mehr steht?
Hajo hat doch gesagt, lösche den Code, den brauchst du nicht.
Oder erläutere mal genau was wann passieren soll, was nicht.
Gruß
Reinhard
Anzeige
Jetzt die genaue Erklärung
07.01.2011 13:30:40
walli
Hallo Reinhard,
also in der Tabelle "Test" dieses Makro, damit die Buchstaben
bei Eingabe GROß geschrieben werden.
Das Problem, wenn ich in der Tabelle "Daten" etwas ändere
wird das Makro angezeigt mit Fehlermeldung.
Laufzeitfehler 1004
Die Select-Methode des Worksheet-Objektes konnte nicht ausgeführt werden.
Private Sub Worksheet_Change(ByVal Target As Range)
Sheets("Test").Select
Application.EnableEvents = False
Range("E7") = UCase(Left(Range("E7"), 2))
u.s.w.
mfg walli
AW: Jetzt die genaue Erklärung
07.01.2011 13:46:31
Reinhard
Hallo Walli,
wenn du in Daten etwas änderst wird nicht das Worksheet_Change von Test gestartet.
Oder kopierst du was von Daten nach Terst o.ä.?
Gruß
Reinhard
Anzeige
Nein ich kopiere keine Daten
08.01.2011 11:49:07
walli
Guten Morgen Reinhard,
nein ich kopiere keine Daten.
Was muß ich den ändern ?
mfg walli
AW: Nein ich kopiere keine Daten
08.01.2011 12:13:35
Reinhard
Hallo Walli,
lade mal eine Mappe hoch wo das geschieht und sag dazu wo man was tun muß damit der Fehler auftritt.
Gruß
Reinhard
AW: Jetzt die genaue Erklärung
08.01.2011 12:44:37
Gerd
Hallo Walli,
ins Modul der Tabelle "Test":
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Address(0, 0, xlA1) = "E7" Then
If Len(.Value) > 0 Then
Application.EnableEvents = False
.Value = UCase$(Left(.Value, 2))
Application.EnableEvents = True
End If
End If
End With
'usw. :-)
End Sub
Gruß Gerd
Anzeige
Muster
08.01.2011 17:21:20
walli
Hallo Gerd,
anbei das Muster !
Wenn ich in der Tabelle z.b. "B2-B15 in die Zelle gehe und etwas
ändere, kommt Fehlermeldung,
Warum ?
Und ich möchte E7 bis E11 die beiden Buchstaben Großschreiben.
https://www.herber.de/bbs/user/72990.xls
mfg walli
AW: Muster
08.01.2011 21:46:26
Gerd
Hallo Walli,
ja warum wird das Combobox-Click-Ereignis ausgelöst, wenn im Listfill-Range geändert wird ?
Gute Frage. :-)
Option Explicit
'Modul Transportauftrag
Sub aaww()
Application.EnableEvents = True
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngCell As Range
If Not Intersect(Target, Range("E7:E11")) Is Nothing Then
For Each rngCell In Intersect(Target, Range("E7:E11"))
With rngCell
If Len(.Value) > 0 Then
Application.EnableEvents = False
.Value = UCase$(Left(.Value, 2))
Application.EnableEvents = True
End If
End With
Next
End If
End Sub

'--------- Typ auswählen ------------
Private Sub ComboBox1_Click()
If Not Me Is ActiveSheet Then Exit Sub ' oder EnableCalculation - Eigenschaft der Tabelle auf  _
False stellen
Range("C7") = ComboBox1
Range("C7").Select
End Sub
Gruß Gerd
Anzeige
Das klappt ! aber wie kann ich die Daten einlesen
09.01.2011 10:46:37
walli
Guten Morgen Gerd,
alle Buchstaben werden so geschrieben wie ich es haben möchte !
Wie kann ich den die Comboboxdaten einlesen ohne das ich im Eigenschaftsfenster
"Test-Daten" in Listfill-Range hinterlegt habe.
Habe verstanden das, wenn man darauf klickt ein Ereignis ausgelöst wird.
Hast Du eine Idee, ich Google schon ein wenig, habe aber noch
keine Lösung.
mfg walli
AW: Das klappt ! aber wie kann ich die Daten einlesen
09.01.2011 12:32:21
Gerd
Hallo Walli,
für deine Combobox aus ActiveXSteuerelemete in der Tabelle "Transportauftrag" gibt es zwei weitere Möglichkeiten zum Füllen mit Werten aus Blatt "Daten"- B2:B19.
Mit der AddItem-Methode oder über die List-Eigenschaft der Combo.
Welche für dich passender ist, hängt davon ab, wie oft im Quellbereich Änderungen erfolgen u. welche Fehlerquellen ausgeschlossen werden sollen; Quellbereich mal leer, mit Lücken, nicht bis zur letzten Zelle gefüllt etc.
Gruß Gerd
Anzeige
Jetzt habe ich dies aber
09.01.2011 13:19:51
walli
Hallo Gerd,
habe dies eingesetzt. Es wird allerdings kein Wert in C7 geschrieben.
Anbei Muster:
https://www.herber.de/bbs/user/72992.xls
Private Sub ComboBox1_Change()
'

Private Sub ComboBox1_Click()
Dim i As Long
Tabelle1.ComboBox1.Clear
For i = 1 To Tabelle2.[B65536].End(xlUp).Row
Tabelle1.ComboBox1.AddItem Tabelle2.Cells(i, 2)
Next
ActiveSheet.Range("C7") = ActiveSheet.ComboBox1.Value
End Sub

mfg walli
AW: Jetzt habe ich dies aber
09.01.2011 13:46:36
Gerd
Hallo Walli!
Welche für dich passender ist, hängt davon ab, wie oft im Quellbereich Änderungen erfolgen u. welche Fehlerquellen ausgeschlossen werden sollen; Quellbereich mal leer, mit Lücken, nicht bis zur letzten Zelle gefüllt etc.
Kannst Du dazu noch eine Aussage machen?
Gruß Gerd
Anzeige
Bleibt so...
09.01.2011 14:38:24
walli
Hallo Gerd,
also der Quellbereich bleibt so und es gibt auch keine
Leerzeilen etc.
Vielleicht 5 Zeilen mehr als die bisherigen Daten bis 23 Zeilen genügt !!!
Danke im Voraus,
mfg walli
AW: Combobox
09.01.2011 23:00:16
Gerd
Hallo Walli,
schaue, ob es so genügt.
Option Explicit
Sub appeventson()
Application.EnableEvents = True
End Sub
Private Sub ComboBox1_Click()
If ComboBox1.ListIndex > -1 Then
Range("C7") = ComboBox1.Value
Range("C7").Select
End If
End Sub

Private Sub Worksheet_Activate()
Dim vntSource As Variant
ComboBox1.Clear
vntSource = Worksheets("Daten").Range(Worksheets("Daten").Cells(2, 2), Worksheets("Daten"). _
Cells(Rows.Count, 2).End(xlUp))
If IsArray(vntSource) Then ComboBox1.List = WorksheetFunction.Transpose(vntSource)
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngCell As Range
If Not Intersect(Target, Range("E7:E11")) Is Nothing Then
For Each rngCell In Intersect(Target, Range("E7:E11"))
With rngCell
If Len(.Value) > 0 Then
Application.EnableEvents = False
.Value = UCase$(Left(.Value, 2))
Application.EnableEvents = True
End If
End With
Next
End If
End Sub
Gruß Gerd
Anzeige
AW: Combobox Danke ! -)
10.01.2011 11:12:47
walli
Guten Morgen Gerd,
danke für deine Ausdauer, so bleibt es !
mfg walli

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige