Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1432to1436
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
Inhaltsverzeichnis

.copy Befehl verwenden

.copy Befehl verwenden
30.06.2015 11:42:10
NoseT
Hallo Liebes Forum,
ich habe ein kleines Problem, welches ich nicht gelöst bekomme. Zum besseren Verständnis erstmal der Code:
Private Sub Eintragen_Click()
'Variablendeklaration
Dim wsh As Worksheet
Dim rge1 As Range, rge2 As Range, rge3 As Range, rge4 As Range
Dim mv As String, sn As String
'Werte aus Eingabefenster werden in Variablen gespeichert
mv = Eingabefenster.ComboBox1.Value
sn = Eingabefenster.ComboBox2.Value
'Wenn in mv und sn ein Wert steht führe Folgendes aus
If sn  "" Then
Set wsh = ThisWorkbook.Worksheets(mv)
Set rg1 = wsh.Range("3:5")
Set rg2 = rge1.Find(sn, , xlValues, xlWhole, xlByColumns, xlNext, False, False)
If Not rg2 Is Nothing Then
Set rg3 = rg2.Offset(2, 0)
Set rg4 = Worksheets("Suche").Range("A8").Resize(50, 8)
---- rg4.Copy Worksheets("wsh").Range(rg3)----
End If
End If
Set rg1 = Nothing
Set rg2 = Nothing
Set rg3 = Nothing
Set rg4 = Nothing
Set wsh = Nothing
MsgBox "Die Werte wurden hinzugefügt!", vbInformation
End Sub
Mein Ziel ist es in die rge4, die eine Tabelle auf dem ersten Tabelleblatt ("Suche") enthält (Das aufgespannte Quadrat von A8:H50) in rg3 zu kopieren. rg3 ist dabei eine Range, die abhängig von der Auswahl der beiden ComboBoxen ist.
Allerdings spuckt mir Excel bei dem mit --- angemerkten Code einen Fehler aus. Ich weiß, dass man beim .Copy Befehl eigentlich einen Zellbereich mit als Beispiel("A8") angeben muss, doch das geht hier nicht. Es ändern sich ja je nach Eingabe in die ComboBoxen der Zielpfad, welcher in den Variablen wsh (für das Blatt) und rg3 (für den Zellbereich im Blatt wsh) gespeichert ist...
Ich würde mich freuen, wenn jemand helfen könnte:)

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: .copy Befehl verwenden
30.06.2015 15:47:20
Michael
Hi NoseT,
Du hast wsh als Worksheet-Objekt definiert. In der besagten Zeile willst Du es allerdings als Tabellen*Namen* einsetzen, das kann nicht gehen.
Übrigens wird rge1 nirgends geSettet...
Wenn Du die ganzen Sets nur innerhalb der Verzweigung machst, gehören die Nothings auch mit da hinein.
Ich mag nicht alles nachbauen, was Du da an Blättern und Comboboxen hast, also lade bitte eine Datei hoch.
Schöne Grüße,
Michael

AW: .copy Befehl verwenden
01.07.2015 08:43:23
NoseT
Hallo Michael,
das mit dem rg bzw. rge ist natürlich ein dummer Fehler und rührt daher, dass ich alle Variablen für das Forum hier umbenannt habe. Im eigentlichen Sheet sind die natürlich alle einheitlich!
Ich weiß auch das der Rest soweit funktioniert, da ich einen ähnlichen Code in meinem Sheet verwende, der mir Daten sucht und dann in eine vorgegebene Tabelle kopiert. Also genau das umgekehrte wie hier.
Ich weiß nur nicht, wie ich die eingestrichelte Zeile schreiben muss, so dass die in rg4 gespeicherten Werte in das Worksheet wsh in rg3 geschrieben werden.
Die Datei kann ich aus Datenschutzrechtlichen Gründen leider nicht hochladen. Ich habe mich aber gestern mit Tipp und Hilfe eines Kollegen an eine andere Möglichkeit gesetzt, die einwandfrei funktioniert. Aber trotzdem würde mich die oben genannte Frage sehr interessieren:)
Private Sub Eintragen_Click()
'Variablendeklaration
Dim wsh As Worksheet
Dim rg1 As Range, rg2 As Range, rg3 As Range, rg4 As Rang
Dim mv As String, sn As String
'Werte aus Eingabefenster werden in Variablen gespeichert
mv = Eingabefenster.ComboBox1.Value
sn = Eingabefenster.ComboBox2.Value
'Wenn in mv und sn ein Wert steht führe Folgendes aus
If sn  "" Then
Set wsh = ThisWorkbook.Worksheets(mv)
Set rg1 = wsh.Range("3:5")
Set rg2 = rge1.Find(sn, , xlValues, xlWhole, xlByColumns, xlNext, False, False)
If Not rg2 Is Nothing Then
Set rg3 = rg2.Offset(2, 0)
Set rg4 = Worksheets("Suche").Range("A8").Resize(50, 8)
---- rge4.Copy Destination:=wsh.rge3----
End If
End If
Set rg1 = Nothing
Set rg2 = Nothing
Set rg3 = Nothing
Set rg4 = Nothing
Set wsh = Nothing
MsgBox "Die Werte wurden hinzugefügt!", vbInformation
End Sub

Anzeige
AW: .copy Befehl verwenden
01.07.2015 15:23:41
Michael
Hallo NoseT,
ich will ja keine originalen Daten von Dir, nur eine beispielhafte Struktur der Datei mit ein paar Spieldaten.
Wenn es Dir zu viel Arbeit ist, das zur Verfügung zu stellen, kann ich Dir nicht weiterhelfen, sorry.
Dazu ist mir nämlich meine Zeit zu schade.
Schöne Grüße,
Michael

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige