Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Anfänger - Code will nicht
zurück: User einer freigegebenen Arbeitsmappe anzeigen weiter: Mehrdeutiger Name nach Migration von 2003 auf 2007 Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Excel-Teddy
Excel-Kenner (VBA-Einsteiger)


Verfasst am:
13. März 2014, 11:04
Rufname:
Wohnort: NRW

Anfänger - Code will nicht - Anfänger - Code will nicht

Nach oben
       Version: Office 2010

Guten Morgen Gemeinde,

Ich brauche Hilfe bei folgendem Problem:

Wenn in der Spalte L 71 wiedergeegben wird, dann soll in den Spalten T5:V eine 0 eingefügt werden.

Mein missgülckter Code:

Code:

Private Sub Worksheet_Change(ByVal Target As Range)

If Range.Value("L5:L") = 71 Then
  Target.Offset("T5:V").Value = 0
End If

End Sub


Dankeschön
HKindler
ambitionierter Amateur


Verfasst am:
13. März 2014, 11:39
Rufname:


AW: Anfänger - Code will nicht - AW: Anfänger - Code will nicht

Nach oben
       Version: Office 2010

Hallo Teddy,

also hier ist ja einiges im Argen!

Zunächst einmal ist die Angabe "L5:L" nicht gültig. Ich denke du meinst damit die Spalte L beginndend ab Zeile 5. Leider bietet Excel diese Art der Angabe nicht und du musst je nach Tabellengröße, also ob es sich um eine .xls oder .xlsm handelt, entweder "L5:L65538" oder "L5:L1048576"

Range.Value("xxx") gibt es nicht.

Du überprüfst ob "L5:Lxxx" den Wert 71 hat. Das funktioniert so auch nicht, du kannst immer nur einzelne Zellen und keine Bereiche mit einem Wert vergleichen.

Du weist "T5:Vxxx" den Wert 0 zu. Auch hier gilt das eben schon gesagte analog.

Was du willst ist wohl so etwas:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.CountLarge = 1 Then
    If Not Intersect(Targe, Range("L:L") Is Nothing Then
        If Target.Row >= 5 Then
            If Target = 71 Then
                Range("T" & Target.Row)=0
                Range("U" & Target.Row)=0
                Range("V" & Target.Row)=0
            End If
        End If
    End If
End If

End Sub


In Bezug auf Geschwindigkeit und Sicherheit kann man hier noch einiges optimieren, aber fürs Erste soll das mal reichen.

_________________
Gruß,
Helmut

----------------------------
Windows 7 / Office 2010
Gast



Verfasst am:
13. März 2014, 11:47
Rufname:

AW: Anfänger - Code will nicht - AW: Anfänger - Code will nicht

Nach oben
       Version: Office 2010

Hallo!
Oder sowas in dieser Richtung:

Private Sub Worksheet_Change(ByVal Target As Range)
With Target
    If .Row > 4 And .Column = 12 And .Text = 71 Then
        Range(.Offset(0, 8), .Offset(0, 10)).Value = 0
    End If
End With
End Sub


... wobei ja auch noch festgelegt werden muss, was passiert, wenn eine 71 auf einen anderen Wert geändert wird.
Natürlich lässt sich dies auch mit Formeln darstellen.

Gruß, Ralf
Excel-Teddy
Excel-Kenner (VBA-Einsteiger)


Verfasst am:
13. März 2014, 12:28
Rufname:
Wohnort: NRW

AW: Anfänger - Code will nicht - AW: Anfänger - Code will nicht

Nach oben
       Version: Office 2010

WOW - Gleich zwei Antowrt - DANKE:)

Irgendwo ist aber noch der Wurm...

Hallo HKindler:
Du hast die Abschluss-Klammer nach dem ("L:L")) vergessen - oder?!
Habe diese ergänzt und dann wir mir das Makro-Fenster geöffnet (als wenn ich Alt+F8 drücken würde)

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.CountLarge = 1 Then
If Not Intersect(Targe, Range("L:L")) Is Nothing Then
If Target.Row >= 5 Then
If Target = 71 Then
Range("T" & Target.Row)=0
Range("U" & Target.Row)=0
Range("V" & Target.Row)=0
End If
End If
End If
End If

End Sub


@Ralf:
Wenn ich deinen Code laufen lassen möchte dann wird das Fenster Makros geöffnet, genau wie bei Alt+F8 - Habe ich was falsch gemacht / nicht bedacht?



Danke für euere Mühe
Excel-Teddy
Excel-Kenner (VBA-Einsteiger)


Verfasst am:
13. März 2014, 13:04
Rufname:
Wohnort: NRW

AW: Anfänger - Code will nicht - AW: Anfänger - Code will nicht

Nach oben
       Version: Office 2010

Hatte sich erledigt Embarassed - Hatte 2 Fehler

1. Meine neue Tabelle hatte ich nicht als .xslm gespeichert
2. Hatte ich ein Problem mit Mehrdeutigem Namen.

Die FORMEL FUNKTIONIERT - DANKE!

KLEINES ABER wie kann ich den Kompilierungs-Fehler beseitigen?
Ich habe 2 Codes mit Worksheet_Change

Dankeschön
Daniela88
Gast


Verfasst am:
13. März 2014, 14:57
Rufname:

AW: Anfänger - Code will nicht - AW: Anfänger - Code will nicht

Nach oben
       Version: Office 2010

Hallo Teddy,

Du müsstest beide Codes in einen legen, denn Worksheet Change darf es nur einmal pro Tabelle geben.
Ist das das Change Ereigniss das in der Tabelle Vorlage stand? Wenn ich das richtig in Erinnerung habe war dort bereits Target für die Zellen J:K vergeben dann wird der neue Code nicht mehr laufen.

Mit freundlichen Gruße
Daniela
Daniela88
Gast


Verfasst am:
13. März 2014, 15:32
Rufname:

AW: Anfänger - Code will nicht - AW: Anfänger - Code will nicht

Nach oben
       Version: Office 2010

Hallo again,

noch eine Fehlerquelle in deinen alten Code:

Code:
If Not Intersect(Targe, Range("L:L")) Is Nothing Then

sollte eher
Code:
If Not Intersect(Target, Range("L:L")) Is Nothing Then

heißen.

Mit Option Explicit wäre es dir aufgefallen, sollte in jedem Modul an oberster Stelle stehen. Irgendwo gibt es eine Funktion die es automatisch in jedes Modul einfügt, google mal.

So sollte es funktionieren.....

Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim strText As String

   If IsEmpty(Target) Then Exit Sub
   If Not Intersect(Target, Range("J5:K1128")) _
      Is Nothing Then Exit Sub
   Application.EnableEvents = False
   On Error GoTo ERRORHANDLER
   Target = UCase(Target)
ERRORHANDLER:
   Application.EnableEvents = True

   With Target
      If .Column <> Columns("L").Column Then Exit Sub
      If .Row < 5 Then Exit Sub
      If .Count > 1 Then Exit Sub

      Application.EnableEvents = False
      strText = 71
      Cells(.Row, "T").Value = 0
      Cells(.Row, "U").Value = 0
      Cells(.Row, "V").Value = 0
      Application.EnableEvents = True
   End With
End Sub


Mit freundlichen Gruße
Daniela
Daniela88
Gast


Verfasst am:
13. März 2014, 15:38
Rufname:


AW: Anfänger - Code will nicht - AW: Anfänger - Code will nicht

Nach oben
       Version: Office 2010

Hallo Teddy,

nimm lieber den Code von Melanie, mein change funktioniert mit dem anderen Code zuammen auch nicht Smile

Mit freundlichen Gruße
Daniela
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Excel Formeln: Anfänger braucht Unterstützung 7 riwo 197 21. Feb 2012, 00:08
Guenter_Steiner Anfänger braucht Unterstützung
Keine neuen Beiträge Excel Formeln: Gegenteil von code() 3 Qwertzuiop 487 26. Aug 2011, 17:22
Gast Gegenteil von code()
Keine neuen Beiträge Excel Formeln: Anfänger Hilfe bei Mittelwertberechnung 12 Arhtur 394 29. Jul 2011, 21:35
Gast Anfänger Hilfe bei Mittelwertberechnung
Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten. Excel Formeln: Anfänger braucht dringend Hilfe 3 Schnupperkurs 192 29. Mai 2011, 12:01
< Peter > Anfänger braucht dringend Hilfe
Keine neuen Beiträge Excel Formeln: Arbeitsplan ( einfach ) ist ein Anfänger!!! 21 Helgoland 22601 13. März 2011, 21:19
Gast Arbeitsplan ( einfach ) ist ein Anfänger!!!
Keine neuen Beiträge Excel Formeln: Worksheet.Function.Average bei Variablen im VBA Code 0 Jwk 1210 23. Jan 2011, 15:47
Jwk Worksheet.Function.Average bei Variablen im VBA Code
Keine neuen Beiträge Excel Formeln: Formel zur Ermittlung des Prüfziffer für EAN Code 12 9 shark1 11088 22. Nov 2010, 22:58
FP Formel zur Ermittlung des Prüfziffer für EAN Code 12
Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten. Excel Formeln: Farbumschlag über Code (ALT+11) formatieren 2 Viper85 896 24. Sep 2010, 08:33
Thomas Ramel Farbumschlag über Code (ALT+11) formatieren
Keine neuen Beiträge Excel Formeln: Exel Anfänger braucht kleine Hilfe für Mwst. berechnung. 3 Off2007user 3111 27. Apr 2010, 17:31
Off2007user Exel Anfänger braucht kleine Hilfe für Mwst. berechnung.
Keine neuen Beiträge Excel Formeln: bestimmten code suchen 4 Gast 295 06. Dez 2008, 14:50
Gast bestimmten code suchen
Keine neuen Beiträge Excel Formeln: Anfänger wenn funktion 6 A Kid Purl 1200 25. Nov 2008, 18:25
Gast Anfänger wenn funktion
Keine neuen Beiträge Excel Formeln: Suchhilfe für Anfänger 3 Gast 595 18. Aug 2008, 15:22
Alterweg Suchhilfe für Anfänger
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: JavaScript