Supportnet Computer Supportnet Games Supportnet Kochen Explipedia
Login: guestBesucher online: 118
Supportnet Computerforum
SUPPORT
Home
Forum
Tipps & Infos
Blitz Angebote
Members
Hilfe
Video

TOP THEMEN
SSD Test
Alles über SSDs

Android Tipps
iPad Tipps
Google Tipps
Windows 8 FAQ
Windows 7 FAQ
E-Mail FAQ
Netzwerk FAQ
Festplatten FAQ
Datenrettung FAQ
Bildbearbeitung FAQ

Top iPhone Apps
Computer Einsteiger
Die 5 besten...
Explipedia
Themen
Direktlinks

Neue Einträge
News einsenden News einschicken
Tipps einsenden Tipp einschicken

SN-LINKS

Suche
Befreundete Seiten
Top Seiten

Supportnet/Forum/Tabellenkalkulation



Supportnet/Forum/Tabellenkalkulation
von SpreeQuell vom 20.03.2017, 11:48 Diese Seite den Supportnet Favoriten hinzufügen  Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden


Mit CommandButton Werte kopieren

 (194 Hits)

Hallo Leute,

ich habe folgendes Problem. Ich möchte mit einem CommandButton Werte von einem Tabellenblatt in ein anderes kopieres. Diese Werte sollen an eine bestimmte Startposition beim ersten Klicken des Buttons kopiert werden (hier: D23) und bei einem weiteren Klicken sollen die Werte eine Zeile darunter eingefügt werden.

Also 1.Klick --> D23, zweiter Klick --> D24 usw....

Mit meinem Code bekomme ich es hin die Werte zu kopieren und auch untereinander anzuorden, aber das speichern beginnt bei mir in D2 und nicht D23. Ich weiß nicht, wie ich diese Zelle auswählen kann. (Bei euren Lösungen beachtet bitte, dass ich keine neue Zeile einfügen möchte, da das mein Zieltabellenblatt verändert)

Private Sub CommandButton2_Click()
Dim lngZeile As Long
With Worksheets("Tabelle3")
Range("G3,H3,I3,J3,K3,L3").Copy
lngZeile = .UsedRange.Row + .UsedRange.Rows.Count
Worksheets("Tabelle3").Range("D" & lngZeile).PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
End With
End Sub


Vielen Dank
SpreeQuell


Antwort schreiben 50 Bonuspunkte

Antworten...
Antwort 1 von M.O. vom 20.03.2017, 12:12 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo,

probier es mal so:

Private Sub CommandButton2_Click()
Dim lngZeile As Long

With Worksheets("Tabelle3")
  .Range("G3:L3").Copy
  'letzte beschriebene Zeile in Spalte D ermitteln
  lngZeile = .Cells(Rows.Count, 4).End(xlUp).Row + 1
  'Einfügen erst ab Zeile 23
  If lngZeile < 23 Then lngZeile = 23
  .Range("D" & lngZeile).PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
   xlNone, SkipBlanks:=False, Transpose:=False
End With
 
'Markierung aufheben
Application.CutCopyMode = False

End Sub


Gruß

M.O.


Antwort noch nicht bewertet Als gute Antwort bewerten
Diese Antwort hat mein Problem gelöst
Antwort 2 von SpreeQuell vom 20.03.2017, 12:32 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo M.O.

vielen Dank für die schnelle Antwort, aber leider funktioniert es noch nicht ganz.
Den Code für die Ermittlung der letzten Zeile müsste man irgendwie anpassen. Ich habe es auch schon auf die gleiche Weise probiert, allerdings funktiniert dieser Befehl aufgrund des Aufbaus meines Tabellenblattes nicht.

'letzte beschriebene Zeile in Spalte D ermitteln
lngZeile = .Cells(Rows.Count, 4).End(xlUp).Row + 1

Ich habe sozusagen nur einen Bereich von D23-D34, in den ich kopieren kann. Das hätte ich anmerken müssen. Danach stehen wieder beschriebene Zellen, deshalb funktioniert das suchen nach der letzten Zeile nicht.

Vielleicht macht es das aber auch einfacher, denn ich möchte nur in diesen Bereich von D23-D34 hineinkopieren. Kann man dafür eine If-Bedingung oder sonstiges einbauen, aber trotzdem so, dass untereinander kopiert wird?

Gruß
SpreeQuell


Antwort noch nicht bewertet
Antwort 3 von M.O. vom 20.03.2017, 13:06 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo,

ja, das hättest du erwähnen sollen ;-). Dann eben so:

Private Sub CommandButton2_Click()
Dim lngZeile As Long

With Worksheets("Tabelle3")
 'letzte beschriebene Zeile in Spalte D ermitteln
  For lngZeile = 23 To 34
   If .Cells(lngZeile, 4) = "" Then Exit For
  Next lngZeile
 If lngZeile > 34 Then
  MsgBox "Achtung! Zeile 34 ist erreicht! Es können keine Daten mehr eingefügt werden!", 16, "Abbruch"
  Exit Sub
 End If
 
 .Range("G3:L3").Copy
  .Range("D" & lngZeile).PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
   xlNone, SkipBlanks:=False, Transpose:=False
End With
 
'Markierung aufheben
Application.CutCopyMode = False

End Sub

Ich gehe davon aus, dass in den Zellen D34 bis D34 immer etwas steht, wenn dort Daten hineinkopiert werden.

Gruß

M.O.


Antwort noch nicht bewertet Als gute Antwort bewerten
Diese Antwort hat mein Problem gelöst
Antwort 4 von SpreeQuell vom 20.03.2017, 13:39 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Danke M.O. das hat mein Problem perfekt gelöst!

Gruß SpreeQell


Antwort noch nicht bewertet




Hinweis
Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum.

MACHEN SIE IHRE WEBSITE ATTRAKTIVER
Sie haben eine eigene Website und wollen Ihre Besucher auf den Supportnet-Service aufmerksam machen? Kopieren Sie einfach den Quellcode in Ihre Seite und jeder Besucher Ihrer Seite kann direkt auf die Supportnet-Datenbank zugreifen.

My Supportnet


SUCHE

Gruppen im Forum
Betriebsysteme
Software
Hardware
Netzwerk
Programmierung
Sonstiges

Impressum © 1997-2015 SupportNet
Version: supportware 1.8.230E / 18.10.2010, Startzeit:Mon Sep 25 00:38:08 2017