Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
920to924
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
920to924
920to924
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

kleines Makro für Copy/Paste

kleines Makro für Copy/Paste
26.10.2007 15:38:28
Larissa
Hallo,
ich möchte gerne ein Makro erstellen. Bis jetzt habe ich meistens nur mit dem Makrorekorder gearbeitet und die Makros durch Copy/Paste erstellt. In diesem Fall reicht das leider nicht aus und ich muss um Hilfe bitten:
Für den Bereich einer Zeile, der in Tabelle1 markiert ist, sollen aus Tabelle2 automatisch die Formeln aus der gleichen Spalte eingefügt werden, wie die markierten in Tabelle1.
Die Formeln in Tabelle2 liegen nur auf Zeile 2. Wenn z.B. Die Zellen C5:F5 in Tabelle1 markiert sind, sollen die Formeln aus Tabelle2 C2:F2 eingefügt werden.
Das aufgezeichnete Makro hilft wahrscheinlich nicht weiter, außerdem sind da wahrscheinlich wieder viel zu viele "Selects" ....
Range("C5:F5").Select
Sheets("Tabelle2").Select
Range("C2:F2").Select
Selection.Copy
Sheets("Tabelle1").Select
Range("C5").Select
ActiveSheet.Paste
Kann mir da bitte jemand helfen? Vielen Dank.
Lieben Gruß, Larissa

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Formeln/Funktionen per VBA kopieren
26.10.2007 15:56:00
NoNet
Hallo Larissa,
teste doch mal dieses Makro :

Sub CopyFormulas()
'Formeln per VBA kopieren
'Die Formeln in Tabelle2 liegen nur auf Zeile 2. Wenn z.B. Die Zellen C5:F5 in Tabelle1  _
markiert sind,
'sollen die Formeln aus Tabelle2 C2:F2 eingefügt werden.
Dim lngZeile As Long, intSpalte As Integer, intSpalten As Integer
Sheets("Tabelle1").Activate
lngZeile = Selection.Row
intSpalte = Selection.Column
intSpalten = Selection.Columns.Count
Sheets("Tabelle2").Cells(2, intSpalte).Resize(, intSpalten).Copy Cells(lngZeile, intSpalte)
End Sub


Gruß, NoNet

Anzeige
AW: Formeln/Funktionen per VBA kopieren
26.10.2007 16:05:00
Larissa
Hallo NoNet,
das scheint ja richtig super zu funktionieren.
Es werden auch die Formate übernommen, aber das ist auch ok so.
Danke, NoNet, damit hast Du mir richtig geholfen.
Gruß, Larissa

AW: Formeln/Funktionen per VBA kopieren
26.10.2007 20:22:43
Larissa
Hallo nochmal,
zu diesem Makro habe ich noch eine Ergänzung gemacht. Leider bleibe ich an einer Stelle stecken.
Die Ergänzung ist, dass wenn die komplette Zeile markiert ist, dann soll auch die komplette Zeile mit den Formeln aus Tabelle2 eingefügt werden. So weit bin ich gekommen:

Function ZeileMarkiert() As Boolean
With Selection
ZeileMarkiert = (.Row & ":" & .Row) = .Address(RowAbsolute:=False)
End With
End Function



Sub formeln_einfuegen()
blattname = ActiveSheet.Name
Dim lngZeile As Long, intSpalte As Integer, intSpalten As Integer
lngZeile = Selection.Row
intSpalte = Selection.Column
intSpalten = Selection.Columns.Count
intRow = Sheets("Tabelle2").Range("A:A").Find(blattname).Offset(1, 0).Row
If ZeileMarkiert Then
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Else
Sheets("Tabelle2").Cells(intRow, intSpalte).Resize(, intSpalten).Copy Cells(lngZeile,  _
intSpalte)
End If
End Sub


Mir fehlt eigentlich nur die 'xxxxx Zeile. Das kriege ich einfach nicht hin.
Vielen Dank nochmal für Eure Hilfe.
Larissa

Anzeige
Sheets("Tabelle2").Rows(intRow).Copy
26.10.2007 21:33:51
NoNet
Hallo Larissa,
das funktioniert in etwa so:

If ZeileMarkiert Then
Sheets("Tabelle2").Rows(intRow).EntireRow.Copy Cells(lngZeile,  1)
Else
Sheets("Tabelle2").Cells(intRow, intSpalte).Resize(, intSpalten).Copy Cells(lngZeile,   _
intSpalte)
End If


Gruß, NoNet

AW: Sheets("Tabelle2").Rows(intRow).Copy
26.10.2007 21:47:40
Larissa
Ja Danke NoNet, nochmal.
Genaus so funktioniert es.
Lieben Gruß, Larissa

Hallo NoNet - nur Formeln einfügen?
26.10.2007 23:02:00
Larissa
Hallo NoNet,
ich brauche jetzt doch noch mal Deinne Hilfe. Mir ist bei dem Copy/Paste Vorgang das folgende Problem aufgefallen:
Wenn ein Bereich aus Tabelle2 kopiert wird und in Tabelle1 eingefügt wird, werden die Zellen mit Formeln und Formaten übertragen. Leider werden aber auch vorhandene Werte in Tabelle1 überschrieben. Es befindet sich nicht in jeder Zelle aus der kopierten Zeile eine Formel und aus den Zellen ohne Formel darf nur das Format übertragen werden.
Mit dem Makrorekorder werden auch die Werte überschrieben. Auch, wenn man über "Inhalte einfügen" nur Formeln einfügt (komisch). Kann man diese Eigenschaft vielleicht irgendwie per VBA ausschalten?
Wäre ganz große Klasse, wenn das klappt.
Lieben Gruß, Larissa

Anzeige
Problem ist gelöst
27.10.2007 21:51:23
Larissa
Hallo NoNet,
Du brauchst Dir keine Gedanken mehr zu diesem Thema zu machen, ich habe da eine Lösung gefunden.
Lieben Gruß,
Larissa

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige