Makro Einleitung für den Anfänger

Er bricht den kopiervorgang ab mit der Fehlermeldung: "Kann Teil einer verbunden Zelle nicht ändern"

:( ............. und das nur wegen meinen verbunden zellen alles. Und ich dachte die Idee ist so gut :-/

Hier mal ein Pic

Der graue Bereich besteht aus je 3 Spalten und 5 zeilen für die Webdaten zum importieren.

Gibt es dazu ne einfache Lösung um die Daten doch rein zu kopieren?


albi
 
Zuletzt bearbeitet:
Ich weiß jetzt ehrlich gesagt nicht, welche Daten du wohin kopieren willst.

Wenn's um die vier Fahrer geht, würd ichs eben temporär irgendwo hin kopieren. Verbundene Zellen sind .. naja, lieber vermeiden wenns geht :D
 
Von hier:
von (A1 und C1)

nach hier:
nach (A1751 und B1751)

Soll kopiert werden. Also nicht mehr F1 sondern C1. hat sich geändert, aber das ist ja das geringste.


albi
 
Zuletzt bearbeitet:
Und wo sind da nun verbundene Zellen? so könntest du es ja ganz einfach kopieren.
 
Verbunden Zellen auf Tabelle Juni 09 sind:

A1751 - A1755
B1751 - B1755
C ist normal (5 Zeilen)
D ist normal (5 Zeilen)
E ist normal (5 Zeilen)
F1751 - F1755
G1751 - G1755
H1751 - H1755
I1751 - I1755
J ist normal (5 Zeilen)
K1751 - K1755
L1751 - L1755


albi
 
Edit:
Bringt uns das weiter?

Code:
Sub Test()
Dim a, b As Range
Set a = Worksheets("Tabelle1").Range("A1:A9")
Set b = Worksheets("Juni 09").Range("A1751:A1759")
b.Value = a.Value
End Sub


Oder was ist das?

Code:
Dim z As Range
For k = 2 To lastRow4
For Each z In Selection
Next
Sheets("Tabelle1").Select
Cells(k, 7).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Tabelle2").Select
Cells(k + 18, 3).Select
ActiveSheet.Paste
Next k

------------------------------------------------------------

So soll es mal aus sehen, allerdings weiter fortlaufen. Quasi ne schleife fehlt noch.
Diese Schleife soll allerdings nur so lange gehen bis in "Tabelle1" in der Spalte A nichts mehr steht. Denn so in dieser Art wie das Makro heir ist funktioniert es.

Code:
Sub Rennen_kopieren_per_Hand()
'
' Rennen_kopieren_per_Hand Makro
'

'
    Sheets("Tabelle1").Select
    Range("A1").Select
    Selection.Copy
    Sheets("Juni 09").Select
    Range("A1751:A1755").Select
    ActiveSheet.Paste
    Sheets("Tabelle1").Select
    Range("C1").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Juni 09").Select
    Range("B1751:B1755").Select
    ActiveSheet.Paste
    Sheets("Tabelle1").Select
    Range("A2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Juni 09").Select
    Range("A1756:A1760").Select
    ActiveSheet.Paste
    Sheets("Tabelle1").Select
    Range("C2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Juni 09").Select
    Range("B1756:B1760").Select
    ActiveSheet.Paste
    Sheets("Tabelle1").Select
    Range("A3").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Juni 09").Select
    Range("A1761:A1765").Select
    ActiveSheet.Paste
    Sheets("Tabelle1").Select
    Range("C3").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Juni 09").Select
    Range("B1761:B1765").Select
    ActiveSheet.Paste
End Sub
 
Zuletzt bearbeitet:
Das Problem ist, dass du mit dem Makro herausfinden müsstest, welche Zellen verbunden sind.

Ich wüsste nicht, wie das geht - ohne den gesamten Zellbereich kannst du aber nichts kopieren.

Wenn es immer 5 Zellen sind, dann könnte man den Bereich natürlich einfach immer um 5 hochzählen:
Code:
Sub Rennen_kopieren()

Dim i As Integer
Dim k As Integer
Dim m As Integer

k = 1
m = Worksheets("Tabelle1").UsedRange.Rows.Count

For i = 1751 To m + 1751 [COLOR="Red"][B]Step 5[/B][/COLOR]
  Sheets("Tabelle1").Range("A" & k).Copy Destination:=Sheets("Juni 09").Range("A" & i & ":A" & i + 4) '+ 4 stimmt, nicht 5!
  Sheets("Tabelle1").Range("C" & k).Copy Destination:=Sheets("Juni 09").Range("B" & i & ":B" & i + 4) '+ 4 stimmt, nicht 5!
  k = k + 1
Next i

End Sub
 
Geil geil geil, das geht !!!! :D
Danke

Ein komisches Phänomehn ist allerdings bei deinem Makro.
Wenn ich Tabelle1 30 zeilen stehen, kopiert er beim ersten mal. 10, dann schreibe ich das makro wieder um. lösche die zeilen die shcon ein bzw. umgetragen wurden. und führe das Makro wieder aus. Danach kopier er nur noch 9 zeieln, dann 8, dann 7, dann 6, ........

Das ganz kann ich aber umgehen in dem ich einfach auf Zeile A 1000 etwas hinschreibe, Daurch denk er es geht bis runter und das Makro kopiert alle 30 zeilen von A1 - A30 in einem Stück,a ber woran könnte das liegen?


albi
 
Zuletzt bearbeitet:
Ich suche hiermit nach der letzten benutzten Zeile in Tabelle1:
Code:
m = Worksheets("Tabelle1").UsedRange.Rows.Count
Da wird wohl was schiefgehen. Probiers mal so:
Code:
m = Worksheets("Tabelle1").Cells.SpecialCells(xlCellTypeLastCell).Row
Oder du schreibst einfach einen festen Wert:
Code:
m = 700
(oder wieviele Zeilen du halt hast)
 
Zuletzt bearbeitet:
Oki, also eine saubere Lösung ist nur m = 700
Ich habe den Wert auf 3500 gesetzt um 350 Zeilen von "Tabelle1" zu "Juni 09" zu kopieren.
Naja, aber auf jedenfall funktioniert es jetzt :D

Danke danke danke!


albi
 
Nun, eigentlich ist das die unsaubere Lösung, weil du damit die Zeilennummer selbst eintragen musst. Wenn du das vergisst oder falsch machst werden ggf. Daten nicht kopiert.

Die anderen Lösungen wären dynamisch, und suchen sich das Tabellenende bzw. die Anzahl an benutzten Zeilen selbst. Aber wenn das nicht korrekt hinhaut, ist es natürlich auch keine Lösung :D
 
Zurück
Oben