Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Change Ereignis beim Befüllen von Zellen mit Formeln funktioniert nicht
#31
Hallo,

Code:
With RaZelle
                icol = 6 + Int(ActiveCell.Column / 6)
                If Sheets("TermineTagesaktuell").Cells(1, 1).Value = Cells(3, icol).Value Then
                    icol = 2 + (RaZelle.Column - 2) Mod 6 - (6 * (((RaZelle.Column - 2) Mod 6) = 0))
                    Sheets("TermineTagesaktuell").Cells(RaZelle.Row, icol).Value = RaZelle.Value
                End If
habe es jetzt in den Code der Dezember Tabelle plaziert.


Angewendet auf den 15.12 sagt er das der Vergleich nicht übereinstimmt. Per Überwachungsfenster sind folgende Daten vorhanden:

Watch :  :      RaZelle : "PKG20" : Range/Range : Tabelle12.Worksheet_Change
Watch :  :      icol = 6 + Int(ActiveCell.Column / 6) : Wahr : Boolean : Tabelle12.Worksheet_Change
Watch :  :      icol = 2 + (RaZelle.Column - 2) Mod 6 - (6 * (((RaZelle.Column - 2) Mod 6) = 0)) : Falsch : Boolean : Tabelle12.Worksheet_Change

Watch :  : Sheets("TermineTagesaktuell").Cells(1, 1).Value : 15.12.2022 : Variant/Date : Tabelle12.Worksheet_Change
Watch :  : Cells(3, icol).Value : Leer : Variant/Empty : Tabelle12.Worksheet_Change
Watch :  : ActiveCell.Column : 87 : Long : Tabelle12.Worksheet_Change
Watch :  : icol : 20 : Integer : Tabelle12.Worksheet_Change


Somit überträgt er nichts.

Gruß
.xlsm   PraxisForum.xlsm (Größe: 1,18 MB / Downloads: 1)
Antworten Top
#32
Hallöchen,

icol ist doch nicht boolean. 6 + Int(ActiveCell.Column / 6) muss mindestens 6 ergeben, denn 6 + 0 wäre 6.
Korrekt wäre eigentlich 7, das Datum steht in G, also besser icol = 7 + Int(ActiveCell.Column / 6)

Ebensowenig ist icol = 2 + (RaZelle.Column - 2) Mod 6 - (6 * (((RaZelle.Column - 2) Mod 6) = 0)) boolean ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#33
Sieht nicht klug aus:

With RaZelle
  icol = 6 + Int(ActiveCell.Column / 6)
  If Sheets("TermineTagesaktuell").Cells(1, 1).Value = Cells(3, icol).Value Then
   icol = 2 + (RaZelle.Column - 2) Mod 6 - (6 * (((RaZelle.Column - 2) Mod 6) = 0))
   Sheets("TermineTagesaktuell").Cells(RaZelle.Row, icol).Value = RaZelle.Value
  End If
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#34
... jupp, das ist doppelt gemoppelt...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#35
Hallo,
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim RaBereich As Range                          ' Variable für Bereich
    Dim RaZelle As Range                            ' Variable für Zelle
    Dim RaBereich2 As Range                          ' Variable für Bereich2
    Dim RaZelle2 As Range                            ' Variable für Zelle2
    Dim RaDatum As Range
    Dim icol As Integer
   
    MsgBox "Change gestartet"
    Set RaBereich = Union(Range("C13:GF13 , C9:GF9, C11:GF11, C15:GF15, C17:GF17 , C19:GF19"), _
       Range("C21:GF21, C23:GF23, C25:GF25, C27:GF27 , C29:GF29 , C31:GF31"), _
        Range("C33:GF33 , C35:GF35 , C37:GF37 , C39:GF39 , C41:GF41 , C43:GF43"), _
       Range("C45:GF45 , C47:GF47, C49:GF49 , C51:GF51 , C53:GF53"), _
        Range("C55:GF55 , C57:GF57 , C59:GF59 , C61:GF61 , C63:GF63"), _
       Range("C65:GF65, C67:GF67 , C69:GF69 , c71:gf71 , C73:GF73 , C75:GF75"), _
       Range("C77:GF77 , C79:GF79, C81:GF81 , C83:GF83 , C85:GF85"), _
       Range("C87:GF87 , C89:GF89, C91:GF91"))
    Set RaBereich = Intersect(RaBereich, Target)
    If Not RaBereich Is Nothing Then
        For Each RaZelle In RaBereich
             With RaZelle
                icol = 7 + Int(ActiveCell.Column / 6)
                If Sheets("TermineTagesaktuell").Cells(1, 1).Value = Cells(3, icol).Value Then
                    icol = 2 + (RaZelle.Column - 2) Mod 6 - (6 * (((RaZelle.Column - 2) Mod 6) = 0))
                    Sheets("TermineTagesaktuell").Cells(RaZelle.Row, icol).Value = RaZelle.Value
                End If
                Select Case UCase(.Value)          ' Umwandlung der Eingabe in Großbuchstaben


Icol ist und war als Integer Deklariert? mit 7 geht es auch nicht :(


@snb
was meinst du damit?? sieht nicht klug aus??

Gruß Arnold
Antworten Top
#36
Moin!
snb meint die Redundanzen.
Auf das Objekt des With-Statements referenziert man mit vorgestelltem Punkt.
Das meinte übrigens auch schauan mit seinem "doppelt gemoppelt".

Gruß Ralf
(der sich die Tapete jetzt nicht durchgelesen hat)
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#37
Hallöchen,

was genau geht nicht?
Ich habe jetzt in Tagesaktuell das Datum auf den 18.12. gestellt und bei Dezember am 18.12. was eingetragen, das wurde übertragen.
Die Übernahme bei manuellem Datumswechsel auf TermineTagesaktuell funktioniert hiermit auch ...
Das doppelt gemoppelte habe ich noch raus genommen, das hat damit aber nix zu tun.
Was mich stören würde, ist, dass beim Löschen von Einträgen die Farbe weggenommen und keine graue erzeugt wird.


.xlsm   PraxisForum (1a).xlsm (Größe: 1,18 MB / Downloads: 6)
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#38
Nicht so klug:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  for each it in intersect(target,range("C9:GF85"))
    if it.row mod 2=1 then

    end if
  next

  -----
End Sub

Ich fürchte diese Aufgabe doesn't match remotely deine VBA Kenntnisse.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#39
Sad 
Hallo,

in der Tabelle Parameter war ein X in der Zelle E1, dadurch wurde nicht zurück auf Grau gefärbt. Wie das dahin gekommen ist weis ich nicht.

zu dem Rest,

Ja das kann ich so bestätigen das er bei manueller Datumseingabe auf Tabelle TermineTagesaktuell A1 die Daten von dem Tag im Dezember überträgt. 
Da aber A1 nicht ständig manuell geändert werden kann war dort der Befehl =Heute() drin um das aktuelle Datum selbstständig zu ermitteln, und damit funktioniert es nicht.
Habe jetzt Heute() in eine Freie Zelle Außerhalb eingetragen und hole mit A1 = J1 nun den Inhalt, da geht es auch???

Es werden die Einträge aber nur übertragen wenn es eine Änderung in der Zelle A1 gibt die ein Change Ereignis auslöst.
Gruß


Angehängte Dateien
.xlsm   PraxisForum (1a) (1).xlsm (Größe: 1,18 MB / Downloads: 2)
Antworten Top
#40
Hallöchen,

Zitat:Habe jetzt Heute() in eine Freie Zelle Außerhalb eingetragen und hole mit A1 = J1 nun den Inhalt, da geht es auch???

Die Frage kannst Du Dir eigentlich selbst beantworten. Das ist auch wieder eine Formel...

Ansonsten kannst Du auch einen Button einfügen, der dann ein Makro auslöst, welches die Daten holt.
Oder, Du aktualisierst was beim Öffnen der Datei oder beim Wechseln auf das Blatt.
Oder ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste