Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1484to1488
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

Erweiterung der Kopier Range

Erweiterung der Kopier Range
08.04.2016 08:42:25
Paulinchen
Hallo liebes Forum,
Ich habe leider wiedermal ein Problem mit meinem VBA code und habe bisher bei google und hier im Forum noch keine Lösung gefunden die in meinem Code funktioniert, daher hoffe ich stark auf eure Hilfe :)
Hier erst einmal der Code, anschließend werde ich auf mei Problem eingehen:
Option Explicit
Public Sub CBD_Makro()
Dim Int_Blockanzahl As Integer
Dim Str_Datei As String
Dim Str_Registerkarte As String
Dim Rng_Suchbereich As Range
Dim Rng_Kopierbereich1 As Range
Dim Rng_Kopierbereich2 As Range
Dim Str_Block_ID As String
Dim i As Integer
Dim Test As String
Dim Zieldatei As Worksheet
'Definition der Variablen (Anzahlblöcke, Dateiname, Registerkartenname)
MsgBox ("Dieses Programm dient zur Übertragung der Überschriften")
Int_Blockanzahl = InputBox("Bitte tragen Sie die Anzahl aller Blöcker ein", "Ermittlung der  _
Blockanzahl", "3")
Str_Datei = InputBox("Bitte tragen Sie den Namen der Datei ein, auf die Sie Zugreifen möchten",  _
_
"Ermittlung der Datei", "Beispiel.xlsx")
Str_Registerkarte = InputBox("Bitte tragen Sie den Namen der Registerkarte ein, auf die Sie  _
zugreifen möchten", "Ermittlung der Registerkartenvorlage", "Sheet1")
'Kopie der Blöcke in ein neues Tabellenblatt
For i = 1 To Int_Blockanzahl
Str_Block_ID = "Block " & i
Set Rng_Suchbereich = Workbooks(Str_Datei).Worksheets(Str_Registerkarte).Cells.Find( _
Str_Block_ID, lookat:=xlWhole)
If Rng_Suchbereich Is Nothing Then
MsgBox "Kein Ergebnis gefunden", , "Info zur Suche"
Else:   'MsgBox (Rng_Suchbereich.Row & " " & Rng_Suchbereich.Column)
Rng_Suchbereich.Copy
'MsgBox (Rng_Suchbereich.Value)
Test = "A" & i
'MsgBox (Test)
With Workbooks("Musterdatei.xlsm").Worksheets("Data Overview").Range(Test).  _
_
PasteSpecial
End With
End If
Next i
End Sub

Also im Moment ist es so, dass der Code in einer Datei auf eine Registerkarte zugreift in der verschiedene "Blöcke" aufgebaut sind. Die Suchfunktion aus dem Code sucht nach den Block Überschriften (Block 1/Block 2/ Block 3 usw.)
Die Suche findet die gewünschten Zellen auch, allerdings möchte ich nun die gefundene Range von der einzelnen Zelle, auf einen größeren Zellbereich markieren. Die größere Range möchte ich gerne mit .end(xldown) und .end(xlright) definieren und anschließend kopieren.
hoffentlich hat einer von euch die richtige Lösung parat :)
grüße
paulinchen

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Erweiterung der Kopier Range
08.04.2016 09:18:53
Fennek
Hallo,
falls du die Blöcke durch Leerzeilen/-spalten getrennt hast, könnte (ungeprüft) folgendes funktionieren:
Dim Block as range
Set block = rng_suchbereich.currentregion
Mfg

AW: Erweiterung der Kopier Range
08.04.2016 13:01:55
Paulinchen
Hi Fennek,
vielen Dank für deine Antwort. Leider funktioniert .CurrentRegion nicht, da zwischen den blöcken mehrere Leerzeichen sind, sodass der Befehl .currentRegion mir nicht den gesamt Block ausgibt.
Ich wollte es eigentlich so machen:
Set Rng_Block = Range(Rng_Suchbereich.Adress.End(xlDown), Rng_Suchbereich.Adress.End(xlRight))
Rng_Block.Copy
dabei kommt dann allerdings die Fehlermeldung, dass das Objekt die Methode nicht unterstützt.
Liebe Grüße
Paulinchen

Anzeige
AW: Erweiterung der Kopier Range
08.04.2016 15:01:08
Fennek
Hallo,
es hat do h Vorteile, den pc anzuschalten und die Codes auszuprobieren. Im Bereich a3:b4 hat ich Werte, auf allen Seiten Leerzellen, also einen 'Block' oder Area.
Folgen Codes markieren den gesamten Bereich:

Dim rng as range
Dim block as range
Set block = cells(3,1)
Set block = range(block, block.end(xldown)
Set block = range(block, block.end(xltoright)
' oder auch
Set rng = range("a3").currentregigion
Debug.print block.address, rng.address
Mfg

AW: Erweiterung der Kopier Range
11.04.2016 14:29:26
Paulinchen
Hi Fennek,
leider stehe ich immer noch voll auf dem Schlauch:/
Wenn ich meine Range mit Set definiere, meldet mir der debugger immer noch einen Fehler:
"Anwendungs oder objektdefinierter Fehler
Im folgenden mal wie ich es in meinem Code eingebaut habe:
                   Set Rng_Suchbereich = Range(Rng_Suchbereich, Rng_Suchbereich.End(xlDown))
Set Rng_Suchbereich = Range(Rng_Suchbereich, Rng_Suchbereich.End(xlToRight))
Rng_Suchbereich.Copy

Anzeige
AW: Erweiterung der Kopier Range
08.04.2016 15:02:22
Fennek
Es muss 'currentregion' heißen, das editiren klappt nicht

AW: Erweiterung der Kopier Range
13.04.2016 15:42:03
Paulinchen
Hi,
hat alles geklappt :)
Danke nochmal für deine Hilfe Fennek!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige