Registriert seit: 09.05.2015
Version(en): 2013, Office 365
Hallo zusammen,
für Euch sicher ein banales Problem aber ich komme nicht auf die Lösung.
In einem Tabellenblatt möchte ich einen Bereich mit allen Formaten (Zeilenhöhe und Breite) kopieren und im gleichen Tabellenblatt an einer anderen Stelle einfügen.
Also Bereich auswählen, kopieren, andere Zelle per Maus auswählen, kopierte Auswahl einfügen.
Vielleicht habt jemand eine Idee das mittels Makro zu erledigen.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
kopieren könntest Du leider nur die Spaltenbreite. Die Zeilenhöhe musst Du einzeln einstellen
Code:
Sub test()
Sheets("Tabelle1").Range("A1:C3").Copy
Sheets("Tabelle2").Range("A1").PasteSpecial
'Spaltenbreite kopieren
Sheets("Tabelle2").Range("A1").PasteSpecial Paste:=8
'Schleife ueber alle Zeilen
For icnt = 1 To 3
'Zeilenhoehe uebernehmen
Sheets("Tabelle2").Rows(icnt).RowHeight = Sheets("Tabelle1").Rows(icnt).RowHeight
'Ende Schleife ueber alle Zeilen
Next
End Sub
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 09.05.2015
Version(en): 2013, Office 365
Hallo Andre,
vielen Dank für Deinen Beitrag, hilft schon mal weiter.
Aber wie geht das ohne feste Zelladressen?
Ich möchte einen zu kopierenden Bereich markieren und dann auf dem gleichen Blatt an einer anderen Stelle wieder einfügen.
Das Makro muss ev. angehalten werden um die Zielzelle auswählen zu können...um dann den Kopiervorgang abzuschließen + Spaltenbreite und Höhe.
Vielleicht gibt es für mein Vorhaben ja noch eine einfachere Lösung?
Registriert seit: 28.05.2014
Version(en): 2013 / 2016
Moin,
du kannst einen Bereich markieren und dann in ein Array schreiben. Dann per InputBox die Ziel-Zelle (obere linke Ecke) abfragen und dort dann einfügen. Erforderlichenfalls den Zielbereich noch darauf prüfen, ob er leer ist oder nicht.
Beste Grüße
Günther
Excel-ist-sexy.de …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Folgende(r) 1 Nutzer sagt Danke an GMG-CC für diesen Beitrag:1 Nutzer sagt Danke an GMG-CC für diesen Beitrag 28
• sharky51
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Erich,
das könnte dann so aussehen:
Code:
Sub test()
'Variablendeklarationen
Dim rngTarget As Range, rngSource As Range
'Bei Fehler weiter mit nächstem Kommando
On Error Resume Next
'Kopierbereich auswaehlen
Set rngSource = Application.InputBox("Wählen Sie den Bereich zum Kopieren aus:", _
"Bereich kopieren", , , , , , 8)
If rngSource Is Nothing Then Exit Sub ' Auswahl abgebrochen
'Zielzelle auswaehlen - obere linke zelle des Einfuegebereichs
'Hinweis: Keine Fehlerpruefung auf Auswhal mehrere Zellen
Set rngTarget = Application.InputBox("Wählen Sie die Zelle zum Einfügen aus:", _
"Bereich kopieren", , , , , , 8)
'Fehlerbehandlung Ende
On Error GoTo 0
If rngTarget Is Nothing Then Exit Sub ' Auswahl abgebrochen
'Bereich kopieren
rngSource.Copy
'Daten einfuegen
rngTarget.PasteSpecial
'Spaltenbreite kopieren
rngTarget.PasteSpecial Paste:=8
'Schleife ueber alle Zeilen
For icnt = rngTarget.Row To rngTarget.Row + Selection.Rows.Count - 1
'Zeilenhoehe uebernehmen
Rows(icnt).RowHeight = rngSource.Rows(icnt).RowHeight
'Ende Schleife ueber alle Zeilen
Next
End Sub
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• sharky51
Registriert seit: 09.05.2015
Version(en): 2013, Office 365
Hallo André,
super, super ....genau das habe ich gesucht!!!!
Funktioniert perfekt, vielen Dank!!!!
Registriert seit: 11.04.2014
Version(en): '97 bis 2016; 365
22.05.2016, 23:50
(Dieser Beitrag wurde zuletzt bearbeitet: 22.05.2016, 23:50 von Käpt'n Blaubär.)
Hallo Andr
é,ein kleiner Hinweis der Vollständigkeit halber, beim Erich läuft es zwar, aber mit Option Explicit meckert VBA.
Folglich wird dort kein Option Explicit eingesetzt.VBA vermißt:Zitat:Dim icnt As Long
... dann läuft's auch mit dem Nachbarn :15: