AW: Inhalt in Tabellenblätter schreiben
14.05.2009 11:25:17
Monika
Hallo Stefan,
das mit dem Kommentaren im code erscheint mir Sinnvoll - so mach ich das weiter
Sub C_Register_Fuellen()
' Uebertrag der Daten
Dim Bereich As Range
Dim Zelle As Range
Dim I As Integer
I = 1
Sheets("Register_1").Select
With Tabelle4
Set Bereich = .Range(.Cells(1, 6), .Cells(.Rows.Count, 6).End(xlUp))
End With
For Each Zelle In Bereich
'----- ich bin mir nicht sicher, ob Du wirklich vergleichst, was Du vergleichen willst ---
'(Achtung das funktioniert so nur weil Du im Bereich nur eine Spalte hast
' sonst bin ich mir nicht sicher ob For Each erst alle Zeilen oder erst alle Spalten
' verarbeitet dann merke ich mir den alten Wert einer Zelle lieber in einer Variablen)
'aber prüfe erst einmal - ob Du das wolltest
'beim 1. Schleifendurchlauf entspricht dein Vergleich
'If Worksheets("Content").Cells(1,6) = Worksheets("Tabelle4).Range(.Cells(1, 6)
'bin mir auch nicht sicher, ob Du hier den Inhalt der Zelle vergleichst oder nur
'ob es sich um den gleichen Bereich handelt(was ja nicht sein kann, da der
'Bereich sich in anderen Tabellblättern befindet + was soweit ich das überblicke
'auch keinen Sinn macht)
'ich benutze den Automatismus mit Kurzschreibweisen und Standardeigenschaften eher selten
'weiß nicht ob die Value-Eigenschaft die Standardeigenschaft von Range ist
'würde immer schreiben Worksheets("Content").Cells(I, 6).value = Zelle.value Then
' Du kannst das ganz gut testen indem Du
' MsgBox "Worksheets("Content").Cells(I, 6).value =" & Worksheets("Content").Cells(I, 6). _
value
' MsgBox "zelle.Value =" & Zelle.Value
' Bin mir nicht sicher, ob Du mit Msgbox den Unterschied merkst ob du .Value schreibst
' oder nicht - könnte sein, daß dort immer auf den Inhalt zugegriffen wird (irgendeine _
interne
' Konvertierung zeigt glaube ich immer den Inhalt an) - falls die If-Anweisung nicht _
funktioniert
' einfach mal versuchshalber ".Value" verwenden
If Worksheets("Content").Cells(I, 6) = Zelle Then
' MsgBox "Bedingung erfüllt" 'natürlich könntest Du das auch mit dem Debugger testen
'will es hier aber nicht übertreiben
I = I + 1
Worksheets("Register_" & I).Cells(21, 4) = Worksheets("Content").Cells(I, 5)
Worksheets("Register_" & I).Cells(24, 4) = Worksheets("Content").Cells(I, 2)
Worksheets("Register_" & I).Cells(30, 4) = Worksheets("Content").Cells(I, 4)
Worksheets("Register_" & I).Cells(27, 4) = Worksheets("Content").Cells(I, 3)
Worksheets("Register_" & I).Cells(11, 5) = Worksheets("Content").Cells(I, 6)
Worksheets("Register_" & I).Cells(15, 5) = Worksheets("Content").Cells(I, 1)
End If
Next Zelle
End Sub
Also falls Dir das nicht reicht sag mir:
-ob Du wirklich den Inhalt einer Zelle aus den Tabellenblatt "Content" mit einem
Inhalt einer Zelle aus dem Tabellenblatt "Tabelle4" verbleichen willst
-sag mir welche Werte ob nur Zahlen oder auch Text in den zu vergleichenden
Zellen enthalten sein können -
Gruß Monika