VBA - Fehler beim Kopieren

Hallo Leute,

ich hab mal wieder ein kleines VBA-Problem.
Ich versuche Daten von einem Excelfile in ein anderes zu kopieren.

Soweit so gut, teilweise funktionieren die beiden Zeilen Code, aber manchmal auch nicht :-\

Workbooks(source).Worksheets(„bla“).Cells(28, 19).Copy
Workbooks(destination).Worksheets(„blub“).
Cells(5, 5).PasteSpecial Paste:=xlPasteValues

Fehlermeldung: „für diese aktion müssen alle verbundene zellen dieselbe größe haben“

es liegt an den Zellenverbänden, die ich anlegt habe und nicht abgeändern werden dürfen! die zellverbände sind unterschiedlich groß!
wär schön, wenn jemand ne idee hätte.

Vielen Dank!

Jens

Hallo, Jens!

strText = Workbooks(source).Worksheets("bla").Cells(28, 19).Text
Workbooks(destination).Worksheets("blub").Cells(5, 5) = strText

sollte funktionieren.

Fehlermeldung: „für diese aktion müssen alle verbundene zellen
dieselbe größe haben“

Wenn Du schon so komisch verbundene Zellen mit unterschiedlichen Größen überschreiben willst, ist es kein Wunder, dass Excel den Anwender darauf hinweist, dass es zu seltsamen Nebeneffekten kommen könnte…

Gruß, Manfred

es liegt an den Zellenverbänden, die ich anlegt habe und nicht
abgeändern werden dürfen! die zellverbände sind
unterschiedlich groß!

Hi Jens,
verbundene Zellen sind mir ein Gräuel. Warum müssen die sein? Für den Ausdruck? Verbundene Zellen machen doch nur Ärger, sortiere sie mal…usw Anstelle der verbundenen Zellen kann man locker ein Bild darüberlegen o,ä,
Wenn es nur für den Ausdruck sein soll, habe ich doch erst vor kurzem hier gelöst mittels vba.
Gruß
Reinhard

Hallo Jens,

ich schließe mich meinen Vorrednern an: ich hasse verbundene Zellen.

Warum verbindest Du sie nicht optisch? Den Zelleinhalt mit ein paar Leerzeichen auffüllen und schon ist die Zelle scheinbar mit dem rechten Nachbarn verbunden. Will man diesen Effekt verhindern, dann einfach die rechte Zelle mit einem Inhalt füllen (z.B. Leerzeichen).

Dafür braucht es zwar eine Formatierung als String und ein bisserl Programmieraufwand aber man hat dafür weniger Komplikationen.

Martin

Hallo Manfred,

bast code funzt :smile:
der verbund muss deswegen sein, weil das unserer Kunde fordert^^

vielen dank!

grüße,
jens

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

strText = Workbooks(source).Worksheets(„bla“).Cells(28, 19).Text
Workbooks(destination).Worksheets(„blub“).Cells(5, 5) = strText

Hallo Manfred,
auf „Text“ wäre ich jetzt nicht gekommen. War bisher auch nur einmalig bei mir der Fall dass Value nicht langte, weiß gar nicht mehr worums da ging.
Ich hätte es komplizierter gelöst:

Sub Makro1()
uebel = Array("A1:C1", "f7:h7")
For n = 0 To UBound(uebel)
 Range(uebel(n)).MergeCells = false
Next n
'Kopieren
For n = 0 To UBound(uebel)
 Range(uebel(n)).MergeCells = true
Next n
End Sub

Gruß
Reinhard

Hallo,

den Code den ich vom Manfred bekommen hab funktioniert ja, jedoch hab ich schon wieder ein Problem mit der Formatierung.
die quellzelle hat die benutzerdefinierte Formatierung
#.##0,00;[Rot]-#.##0,00;
die zielzelle hat die benutzerdefinierte Formatierung
#.##0,00 „€“;[Rot]-#.##0,00 „€“;;@

wenn ich nun die Zellen kopiere mit dem Code der unten steht, stehen die Werte z.B: 8.933,00 in den zellen.
wenn ich nun die Zellen mit SUMME() zusammenfassen will, gibts als Ergebnis 0, weil er mit den formatierten Werten nix anfangen kann.

Kennt jemand ein Lösung?
Danke.

Grüße,
Jens

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

die quellzelle hat die benutzerdefinierte Formatierung
#.##0,00;[Rot]-#.##0,00;
die zielzelle hat die benutzerdefinierte Formatierung
#.##0,00 „€“;[Rot]-#.##0,00 „€“;;@
wenn ich nun die Zellen kopiere mit dem Code der unten steht,
stehen die Werte z.B: 8.933,00 in den zellen.
wenn ich nun die Zellen mit SUMME() zusammenfassen will, gibts
als Ergebnis 0, weil er mit den formatierten Werten nix
anfangen kann.

Hi Jens,
ich kann das nicht nachvollziehen.
Wenn ich Spalte A so formatiere:
#.##0,00 „€“;[Rot]-#.##0,00 „€“;;@
dann in A1:A5 Werte eingebe und in A6 oder auch B1 die Summe bilde funktioniert das problemlos.
Gruß
Reinhard

Hallo, Jens!

den Code den ich vom Manfred bekommen hab funktioniert ja,
jedoch hab ich schon wieder ein Problem mit der Formatierung.
die quellzelle hat die benutzerdefinierte Formatierung
#.##0,00;[Rot]-#.##0,00;
die zielzelle hat die benutzerdefinierte Formatierung
#.##0,00 „€“;[Rot]-#.##0,00 „€“;;@

Du arbeitest noch nicht lang mit Excel, oder? Sag bloß, bei Dir hat auch nur ein Mal die Formatierung und das Umwandeln und so funktioniert wie es sollte. Und stell mal von einer Textformatierten Zelle das Format auf Zahl um. Glaubst Du allen Ernstes, Excel hätte damit eine Zahl in der Zelle? Pustekuchen… So, genug geko* über Excel…

Versuch mal, wenn Du eine Zahl darstellen willst, folgendes:

strText = Workbooks(source).Worksheets("bla").Cells(28, 19).Text
if isnumeric(strText) then
 Workbooks(destination).Worksheets("blub").Cells(5, 5) = CDbl(strText)
else
 Workbooks(destination).Worksheets("blub").Cells(5, 5) = strText
endif

Gruß, Manfred