Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1312to1316
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

VBA-COde falsch Korrigiert

VBA-COde falsch Korrigiert
31.05.2013 09:15:25
Jackd
Hallo Gemeinde ich versuch grad meinen einst geschriebenen Code etwas anzupassen was mir allerdings nicht gelingt.
So sah es ursprünglich aus und funktionierte (das ganze select-gedöns wollt ich allerdings rauswerfen)
Sheets("Fallalt").Select
C = "Entgeltbereich"
If Not WorksheetFunction.CountIf(Sheets("Fallalt").Rows(1), C) = 0 Then
cHeader = WorksheetFunction.Match(C, Rows(1), 0)
Range(Cells(1, cHeader), Cells(I, cHeader)).Select
Selection.Copy
Sheets("Fall_mod").Select
Range("C1").Select
ActiveSheet.Paste
Else
Sheets("Fall_mod").Select
Range("C1").Select
ActiveCell.FormulaR1C1 = "Entgeltbereich"
Sheets("Fall_mod").Select
Range("C2").Select
ActiveCell.FormulaR1C1 = "keine Werte"
End If
Jetzt der geänderte Code der bei der .match Funktion hängen bleibt (Fehler 1004)
With Worksheets("Fallalt")
I = .UsedRange.Rows.count
'Spalte A
A = "IK"
If Not WorksheetFunction.CountIf(Sheets("Fallalt").Rows(1), A) = 0 Then
aHeader = WorksheetFunction.Match(A, Rows(1), 0)
Sheets("Fall_mod").Range(Cells(1, aHeader), Cells(I, aHeader)) = _
.Range(Cells(1, aHeader), Cells(I, aHeader))
Else
Worksheets("Fall_mod").Range("A1") = "IK"
Worksheets("Fall_mod").Range("A2") = "keine Werte"
End If
End with
Und ja, ich weiss das es um verschiedene Bereiche dabei geht, dass ist auch egal, es geht um die Syntax nicht um die Konkreten Bereiche
Wenn jemand Rat weiss wär ich durchaus dankbar =)
Grüße

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

Betreff
Datum
Anwender
Anzeige
AW: VBA-COde falsch Korrigiert
31.05.2013 09:19:14
ransi
Hallo
Ungetestet:
aHeader = WorksheetFunction.Match(A, .Rows(1), 0)
ransi

Perfekt.. leider
31.05.2013 09:24:06
Jackd
Hallo Ransi
Vielen dank für deine Lösung
super.. an den Punkt hab ich nicht gedacht -.-
Leider bleibt er jetzt in der nächsten Zeile hängen

Sheets("Fall_mod").Range(Cells(1, aHeader), Cells(I, aHeader)) = _
.Range(Cells(1, aHeader), Cells(I, aHeader))
Siehst du da auch auf die schnelle das Problem?
Grüße

auch die Punkte ?
31.05.2013 09:25:20
ransi
Hallo
Sheets("Fall_mod").Range(.Cells(1, aHeader), .Cells(I, aHeader)) = _
.Range(.Cells(1, aHeader), .Cells(I, aHeader))
?
ransi

Anzeige
Nee leider nicht
31.05.2013 09:36:31
Jackd
Hallo Ransi
erneut ein Dankeschön für deine Hilfe.
Aber diesmal sind es die Punkte nicht.
Zur Erklärung die Idee ist die, dass die Werte aus
Tabelle2.range(cells(1,Spaltenvariable),cells(letzteZeile,Spaltenvariable)
in den gleichen Bereich der Tabelle 1 übertragen werden
Tabelle2.range(cells(1,Spaltenvariable),cells(letzteZeile,Spaltenvariable)
Grundsätzliche Frage:
Wenn ich die Tabelle mit Sheets oder worksheets "anspreche" muss ich doch im range vor cells Keine Punkte machen.. Oder?
Grüße

Sorry offen vergessen owT.
31.05.2013 09:46:40
Jackd
,

AW: Nee leider nicht
31.05.2013 09:55:44
Matze
Hallo JackD,
Wenn ich die Tabelle mit Sheets oder worksheets "anspreche" muss ich doch im range vor cells Keine Punkte machen.. Oder?

sobald du es mit With in Verbindund bringst schon:
with Sheets("Tabelle1")
.Range(.....)

Anzeige
AW: Nee leider nicht
31.05.2013 10:19:13
Jackd
Hallo Matze
Aber für mich ergibt das keinen Sinn..
wenn ich
With Tabelle1
Tabelle2.range(.cells........)
end with

mache,
dann würde das doch bedeuten, dass er mit .cells auf tabelle1 referenziert
also

tabelle2.range(tabelle1.cells
oder hab ich grad nen Denkfehler?
Grüße

AW: Nee leider nicht
31.05.2013 10:22:33
Hajo_Zi
Hallo Jack,
das siehst Du richtig, das ist Falsch.

AW: Nee leider nicht
31.05.2013 10:25:15
Jackd
Hallo Hajo
auch dir vielen Dank für deine Teilnahme =)
Ich stöber auch grad rum, kann es sein, dass man die Werte gar nicht direkt übetragen kann?
Ich versuch es grad über den Umweg eines Array.. aber auch das klappt nicht..
Noch irgendwelche kreativen Ideen?
Grüße

Anzeige
Des Lösungs Rätsel
31.05.2013 10:50:44
Jackd
.. so oder so ähnlich
.Range(.Cells(1, aHeader), .Cells(I, aHeader)).Copy Worksheets("Fall_mod").Cells(1, aHeader)
hat jetzt meine Fragestellung beantwortet
Also, im Ziel nur die oberste Zelle angeben (warum das mit einem kompletten Bereich nicht klappt weiß ich nicht..
zwischenzeitlich hatte ich dann noch den Fehler das meine Objektvariable wks (als Worksheets gedimt) mit einer "falschen" Tabelle besetzt war.
Vielen DAnk für die Zahlreiche Hilfe ..
Grüße

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige