Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1516to1520
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

Markierter Bereich übernehmen

Markierter Bereich übernehmen
23.09.2016 18:37:11
gerhard
Hallo zusammen,
Bitte um VBA Hilfe,
Wie muss der beigefügte VBA Code aus der Arbeitsmappe Quellmappe.xls
abgeändert werden, sodass ein variabler markierter Bereich
von Spalte A bis Spalte F in die Zieldatei angefügt werden kann?
Vielen Dank für Eure Hilfe
Gruß Gerhard
https://www.herber.de/bbs/user/108377.xls

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

Betreff
Datum
Anwender
Anzeige
AW: Markierter Bereich übernehmen
25.09.2016 19:41:31
Michael
Hi,
statt
ThisWorkbook.Sheets("SheetA").Range("F10:H22").Copy

dann
ThisWorkbook.Sheets("SheetA").Selection.Copy

wenn der Bereich zuvor bereits markiert wurde.
Soll der Bereich innerhalb Deiner Sub gewählt werden, kannst Du eine Inputbox mit Type=8 verwenden, siehe z.B. hier:
https://www.herber.de/mailing/vb/html/xlmthinputbox.htm
Dazu führst Du eine weitere Variable ein, z.B. insgesamt so (hier nur zum Testen):
Sub Bereich()
Dim zuKopieren as Range
Set zuKopieren = Application.InputBox("Bereich wählen", Type:=8)
MsgBox zuKopieren.Address    ' gibt die gewählte Adresse aus
zuKopieren.Copy Range("L5")  ' kopiert den Bereich direkt
End Sub

D.h., wenn Du diese Zeilen vor dem Öffnen der externen Datei einfügst, steht Dir der gewählte Bereich weiter unten zur Verfügung, so daß sich die oben zuerst genannte Zeile einfach durch das
zuKopieren.Copy
ersetzen ließe.
Allerdings muß der Fall, daß der Anwender keinen Bereich wählt, mit on error abgefangen werden.
Das würde dann insgesamt so aussehen:
Sub MappeOeffnen()
Dim strOrdner As String, strdateiname As String
Dim wbMappe As Workbook, bolWasOpen As Boolean
Dim lngNext As Long
Dim zuKopieren
On Error GoTo ErrExit
Set zuKopieren = Application.InputBox("Bereich wählen", Type:=8)
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
.DisplayAlerts = False
End With
strOrdner = "C:\Dein\Ordner\"
strdateiname = "Auswertung.xls"
bolWasOpen = True
On Error Resume Next
Set wbMappe = Workbooks(strdateiname)
On Error GoTo ErrExit
If wbMappe Is Nothing Then
bolWasOpen = False
If Dir(strOrdner & strdateiname)  "" Then
Set wbMappe = Workbooks.Open(strOrdner & strdateiname, UpdateLinks:=False)
Else
MsgBox "Folgende Datei existiert nicht : " & vbLf & vbLf & _
strOrdner & strdateiname, vbOKOnly + vbCritical, "Datei nicht gefunden !"
End If
End If
If Not wbMappe Is Nothing Then
With wbMappe.Sheets("SheetB")
lngNext = Application.Max(10, .Cells(.Rows.Count, 3).End(xlUp).Row + 1)
'      ThisWorkbook.Sheets("SheetA").Range("F10:H22").Copy
'      ThisWorkbook.Sheets("SheetA").Selection.Copy
zuKopieren.Copy                   ' ***
.Cells(lngNext, 3).PasteSpecial xlPasteValues
End With
If Not bolWasOpen Then
wbMappe.Close True
End If
End If
ErrExit:
With Err
If .Number  0 Then
MsgBox "Fehler in Prozedur:" & vbTab & "Sub 'MappeOeffnen'" & vbLf & String(40, "=") _
& vbLf & vbLf & IIf(Erl, "Fehler in Zeile:" & vbTab & Erl & vbLf & vbLf, "") & _
"Fehlernummer:" & vbTab & .Number & vbLf & vbLf & "Beschreibung:" & vbTab & _
.Description & vbLf, vbExclamation, "Fehler in Modul - Modul3"
.Clear
End If
End With
On Error GoTo 0
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
.DisplayAlerts = True
End With
Set wbMappe = Nothing
End Sub
Schöne Grüße,
Michael
Anzeige
AW: Markierter Bereich übernehmen
26.09.2016 06:33:03
gerhard
Hallo Michael,
Vielen Dank für Deine Hilfe,
Dein VBA Code funktioniert!
Gruß Gerhard
freut mich, danke f.d. Rückmeldung,
26.09.2016 15:32:03
Michael
Gerhard,
und schöne Grüße zurück,
Michael
P.S.: ich seh grad, die Variable ist nicht "sauber" deklariert...
Ergänze bitte: Dim zuKopieren as Range

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige