Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1104to1108
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zweimal Worksheet_change

Zweimal Worksheet_change
Larissa
Hallo,
ich möchte zwei Worksheet_Change Aktionen in einem Makro vereinen.
In meiner Version steckt ein Fehler (Else ohne If)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column = 6 Then
Select Case Target
Case "EUR"
Target.Offset(0, 1).NumberFormat = "#,##0.00 €"
Case "USD"
Target.Offset(0, 1).NumberFormat = "#,##0.00 [$$-409]"
End Select
End If
Else
If Target.Column = 4 Then
Select Case Target
Case "Einkauf"
Call EK_
Case "Fracht"
Call Fracht_
Case "Kurier"
Call Kurier_
Case "Andere"
Call Andere_
End Select
End If
End Sub
Kann mir bitte jemand dabei helfen.
Viele Grüße, Larissa

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

Betreff
Benutzer
Anzeige
AW: Zweimal Worksheet_change
04.10.2009 11:19:36
Gerd
Hallo Larissa,
mache hieraus:
Else
If Target.Column = 4 Then
dieses:
ElseIf Target.Column = 4 Then
Gruß Gerd
AW: Zweimal Worksheet_change
04.10.2009 11:31:44
Larissa
Danke Gerd,
dann kommt auch die Meldung: Else ohne If
Es muss irgendwie noch etwas fehlen.
Gruß, Larissa
AW: Zweimal Worksheet_change
04.10.2009 11:40:09
Gerd
Hallo Larissa,
ja, sorry. Das "EndIf" darüber muss noch raus. :-)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column = 6 Then
Select Case Target
Case "EUR"
Target.Offset(0, 1).NumberFormat = "#,##0.00 €"
Case "USD"
Target.Offset(0, 1).NumberFormat = "#,##0.00 [$$-409]"
End Select
ElseIf Target.Column = 4 Then
Select Case Target
Case "Einkauf"
Call EK_
Case "Fracht"
Call Fracht_
Case "Kurier"
Call Kurier_
Case "Andere"
Call Andere_
End Select
End If
End Sub
Gruß Gerd
Anzeige
Jetzt kommt eine andere Meldung...
04.10.2009 11:51:06
Larissa
Danke Gerd,
jetzt kommt diese Meldung: Nach End Sup, End Function oder End Property können nur Kommentare stehen.
Viele Grüße, Larissa
AW: Jetzt kommt eine andere Meldung...
04.10.2009 11:54:17
Gerd
Hallo Larissa,
diese Fehlermeldung ist aus dem Code in der jetzigen Form nicht nachvollziehbar.
Was steht denn unter "End Sub" ?
Gruß Gerd
na Gruß Gerd steht doch dort ;o) ...oT
04.10.2009 11:56:13
Matthias
Stimmt Gerd.... Dankeschön
04.10.2009 12:02:24
Larissa
Gerd: Oh, wei peinlich, da stand tatsächlich noch ein Fetzen aus einem Modul....
Matthias: *lol
Vielen Dank und liebe Grüße,
Larissa
AW: Jetzt kommt eine andere Meldung...
04.10.2009 12:01:20
Tino
Hallo,
If Target.Count > 1 Then Exit Sub ist eine eigenständige Abfrage ohne end if und ohne else
Also müsste es so funzen
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column = 6 Then
Select Case Target
Case "EUR"
Target.Offset(0, 1).NumberFormat = "#,##0.00 €"
Case "USD"
Target.Offset(0, 1).NumberFormat = "#,##0.00 [$$-409]"
End Select
End If
If Target.Column = 4 Then
Select Case Target
Case "Einkauf"
Call EK_
Case "Fracht"
Call Fracht_
Case "Kurier"
Call Kurier_
Case "Andere"
Call Andere_
End Select
End If
End Sub
Gruß Tino
Anzeige
Danke Tino
04.10.2009 12:09:03
Larissa
Es kann vielleicht sein, dass vorher nicht alle Optionen aus dem Makro optimal funktioniert haben, das habe ich nicht alles ausprobiert.
Deshalb habe ich jetzt zur Sicherheit Deine Variante eingesetzt.
VG Larissa
ich würde es eventuell so machen...
04.10.2009 12:35:26
Tino
Hallo,
jetzt kannst Du auch mehrere Zellen Durch Ziehen oder einfügen bearbeiten lassen.
Allerdings weiß ich nicht was sich hinter den Call … für Makros verstecken.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range

'komplette Spalten 
Set Bereich = Intersect(Range(Columns(4), Columns(6)), Target)

'Oder wenn mit Überschrift ********************************************************************************** 
Set Bereich = Union(Range("D2", Cells(Rows.Count, 4).End(xlUp)), Range("F2", Cells(Rows.Count, 6).End(xlUp)))
Set Bereich = Intersect(Bereich, Target)
'************************************************************************************************************ 

If Not Bereich Is Nothing Then
  
    For Each Bereich In Bereich
     'eventuell noch eine Abfrage einbauen, um die Überschrift nicht mitzunehmen wenn Spalte leer 
'     If Bereich.Row > 1 Then   '************************** 
            If Bereich.Column = 6 Then
                Select Case Bereich.Value
                    Case "EUR"
                        Bereich.Offset(0, 1).NumberFormat = "#,##0.00 €"
                    Case "USD"
                        Bereich.Offset(0, 1).NumberFormat = "#,##0.00 [$$-409]"
                End Select
            End If
               
            If Bereich.Column = 4 Then
                    Select Case Bereich.Value
                        Case "Einkauf"
                            Call EK_
                        Case "Fracht"
                            Call Fracht_
                        Case "Kurier"
                            Call Kurier_
                        Case "Andere"
                            Call Andere_
                    End Select
            End If
'     End If                    '************************** 
    Next Bereich
End If
End Sub

Gruß Tino
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige