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

Dynamische range festlegen

Dynamische range festlegen
24.02.2017 17:27:13
Philipp
Hallo zusammen,
ich habe in einer Spalte A mehrere Eintraege. Diese fangen in unterschiedlichen Zellen an und hoeren in unterscheidlichen Zellen auf. Jedoch sollen diese Zellen markiert werden. Ist es moeglich die range ueber eine Fenster eingabe festzulegen und in ein makro zu uebernehmen. Ich hoffe, dass es verstaendlich ist.
Mein Code bisher:

Sub main()
Dim copylost As ListColumn
Range("A1:A29").Select
Selection.Copy
'add new file
Set wkb = Workbooks.Add
Range("A1").PasteSpecial
wkb.Close True
End Sub

VG Philipp

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dynamische range festlegen
24.02.2017 17:40:33
Daniel
Hi
du willst innerhalb des Makros Zellen auswählen können?
dazu gibt es die Application.Inputbox ... Type:=8

Sub main()
Dim wkb As Workbook
Dim rng As Range
On Error Resume Next
Set rng = Application.InputBox("Bitte Zellen auswählen", Type:=8)
On Error GoTo 0
If rng Is Nothing Then
MsgBox "Abbruch"
Exit Sub
End If
rng.Copy
'add new file
Set wkb = Workbooks.Add
Range("A1").PasteSpecial
wkb.Close True
End Sub
Gruß Daniel
AW: Dynamische range festlegen
24.02.2017 17:47:56
Philipp
Hi Daniel,
danke fuer deine schnelle Hilfe! Das Problem ist, dass trotzdem noch die ganze Liste kopiert _ wird. Ich denke, dass liegt an dem Code den ich dir vorenthalten habe. Hast du eine Idee? Der

Sub createSheets() erstellt Tabellenblaetter mit den Listennummern und wird in der main()  _
aufgerufen.

Sub createSheets()
Dim Bereich As Range
Dim Zelle As Range
Dim Tabelle As Worksheet
For Each Zelle In Sheet3.Range("A5").CurrentRegion
With ActiveWorkbook
Set Tabelle = .Sheets.Add(After:=.Sheets(.Sheets.Count))
End With
Tabelle.Name = Zelle.Value
Next Zelle
End Sub
Schonmal Danke!
VG Philipp
Anzeige
AW: Dynamische range festlegen
24.02.2017 17:51:24
Philipp
Hi Daniel,
danke fuer deine schnelle Hilfe! Das Problem ist, dass trotzdem noch die ganze Liste kopiert _ wird. Ich denke, dass liegt an dem Code den ich dir vorenthalten habe. Hast du eine Idee? Der

Sub createSheets() erstellt Tabellenblaetter mit den Listennummern und wird in der main()  _
aufgerufen.

Sub createSheets()
Dim Bereich As Range
Dim Zelle As Range
Dim Tabelle As Worksheet
For Each Zelle In Sheet3.Range("A5").CurrentRegion
With ActiveWorkbook
Set Tabelle = .Sheets.Add(After:=.Sheets(.Sheets.Count))
End With
Tabelle.Name = Zelle.Value
Next Zelle
End Sub
Schonmal Danke!
VG Philipp
Anzeige
AW: Dynamische range festlegen
24.02.2017 17:53:11
Philipp
Ups vergessen das Kontrollkaestchen zu aktivieren :D
AW: Dynamische range festlegen
24.02.2017 18:14:35
Daniel
Hi
naja, du weißt ja jetzt wie das mit der Inputbox funktioniert.
das kannst du ja für dein neues Problem adaptieren.
was du da jetzt willst, verstehe ich auch nicht so ganz.
Gruß Daniel
AW: Dynamische range festlegen
24.02.2017 18:40:54
Philipp
Hi Daniel,
theoretisch hast du recht und ich sollte deine Loesung adaptieren koennen, inde rPraxis klappt das leider nicht.
Also mein Ziel ist es aus einer dynamischen Liste (wie oben erklaert), in einer anderen Datei Tabellenblaetter zu erstellen. Diese sollen mit dem Listeninhalt gefuellt werden. Jedoch soll nicht die ganze Liste in Tabellenblaetter umgewandelt werden, sondern nur festgelegte. Die Methode deletesheets ist nur da um die Standard Tabellenblaeter zu loeschen. Mein aktuelles Problem ist, dass immer die komplette Liste in Tabellenblaetter umgewandelt wird (auch mit deinem Loesungsvorschlag). Denek aber, dass ich Ihn falsch umsetze.
Hier mein ganzer Code ohne deinen Vorschlag. Theoretisch geht es nur darum den Code and der richtigen Stelle einzuseten...
Option Explicit
Global wkb As Workbook
Global ws As Worksheets
Sub main()
Range("A1:A29").Select
Selection.Copy
'add new file
Set wkb = Workbooks.Add
Range("A1").PasteSpecial
'rename file
wkb.SaveAs Environ("UserProfile") & "\Desktop\" & "Commission" & Format(Now, "YYYYMMDD_hhmm" _
) & ".xlsx"
Call createSheets
Call deleteWorksheets
wkb.Close True
End Sub
Sub deleteWorksheets()
'delete Sheet1,2,3
Application.DisplayAlerts = False
Worksheets("Sheet1").Delete
Worksheets("Sheet2").Delete
Worksheets("Sheet3").Delete
Application.DisplayAlerts = True
End Sub

Sub createSheets()
Dim Bereich As Range
Dim Zelle As Range
Dim Tabelle As Worksheet
' fill workbook with named sheets
For Each Zelle In Sheet3.Range("A5").CurrentRegion
With ActiveWorkbook
Set Tabelle = .Sheets.Add(After:=.Sheets(.Sheets.Count))
End With
Tabelle.Name = Zelle.Value
Next Zelle
End Sub

Vielen Dank!!
VG Philipp
Anzeige
AW: Dynamische range festlegen
24.02.2017 18:41:41
Philipp
Mal wieder vergessen....
AW: Dynamische range festlegen
24.02.2017 18:44:41
Daniel
Hi
naja, in Create Sheets:
set rng = application.inputbox("...", type:=8)
For Each Zelle In rng
und so weiter.
die Sicherheitsabfragen für den Fall, dass abbrechen gedrückt wird, kannst du ja noch ergänzen.
Gruß Daniel
AW: Dynamische range festlegen
24.02.2017 20:12:48
Philipp
Danke ist genau, dass was ich wollte! :) Vielen Dank fuer deine Muehe!!
VG Philipp

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige