Anzeige
Archiv - Navigation
536to540
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
536to540
536to540
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Range in Makro variabel gestalten

Range in Makro variabel gestalten
28.12.2004 17:52:55
Fritz
Hallo Forum und Excelfreunde,
ich lege jetzt mein Makro bei da es sehr schwierig ist meine Problematik zu erklären, habe auf meine Anfrage viele Antworten erhalten und bedanke mich auch sehr herzlich dafür, mein Problem konnte ich aber noch nicht lösen.
In meinem Makro sind 2x eine Range angegeben (Range("A8:I2500"), diese möchte ich aber variabel gestalten das heißt die Markierungen sollten sich der Datenbankgröße anpassen. Ich habe die entsprechenden Zeilen mit 1 und 2 nummeriert. Alles andere im Makro funktioniert einwandfrei. Bitte um Hilfe wo sonst wenn nicht bei euch Spezialisten.
Range("A9").Select
Sheets("Datensätze").Select
With ActiveSheet.QueryTables.Add(Connection:="TEXT;C:\Kunbonus.TXT", _
Destination:=Range("A9"))
.Name = "KUNBONUS"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 9, 1, 1, 1, 9, 1, 1, 9, 1, 9, 9, 9, 1, 9, 9, 9)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
ActiveWindow.SmallScroll ToRight:=3
Range("H9").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("I9").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.ClearContents
ActiveCell.FormulaR1C1 = _
"=IF(RC[-1]
ActiveSheet.UsedRange
Selection.FillDown
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A8").Select
Application.CutCopyMode = False
Range("A8:I2500").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range _
("A1:I3"), CopyToRange:=Range("R8"), Unique:=False
ActiveWindow.SmallScroll ToRight:=0
Columns("A:Q").Select
Selection.Delete Shift:=xlToLeft
Range("A8").Select
Selection.AutoFilter
Columns("A:I").Select
Selection.Columns.AutoFit
Range("A8").Select
Range("A8:I2500").Sort Key1:=Range("I9"), Order1:=xlDescending, Key2:= _
Range("H9"), Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, _
DataOption2:=xlSortNormal
Sheets("automatisierte Befehle").Select
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Range in Makro variabel gestalten
Heiko
Moin Fritz,
vielleicht hilft dieses kleine Beispiel, das zeigt wie man aus zwei Angaben (hier über Inputbox) einen Range zusammenbasteln kann.

Private Sub CommandButton1_Click()
Dim Eingabe1, Eingabe2, Zelle As String
Eingabe1 = InputBox("Bitte erste  Zelle eingeben !", , "Erste  Zelle")
Eingabe2 = InputBox("Bitte letzte Zelle eingeben !", , "Letzte Zelle")
Zelle = Eingabe1 & ":" & Eingabe2
Range(Zelle).Select
End Sub

Nun mußt du also nur rausfinden von wo bis wo dein Range geht und das so wie oben zusammenbasteln. Viel Spaß.
Gruß Heiko
Anzeige
AW: Range in Makro variabel gestalten
29.12.2004 08:25:21
Fritz
War gut gemeint Heiko muss aber vollautomatisch laufen ohne jegliche Eingaben, Problem leider noch nicht gelöst
AW: Range in Makro variabel gestalten
29.12.2004 19:45:54
Harry
Hallo Fritz,
damit müsste es funktionieren:

Sub markiere_gesmten_Bereich()
Dim b, i, m, n As Long
For b = 8 To 2500 'Zeile
For m = 1 To 9 'Spalte
If Cells(b, m).Value <> "" Then
i = b 'ermittelt grössten Zeilenindex...
End If
Next m
Next b
For m = 1 To 9 'Spalte
For b = 8 To 2500 'Zeile
If Cells(b, m).Value <> "" Then
n = m 'ermittelt grössten Spaltenindex...
End If
Next b
Next m
Range(Cells(8, 1), Cells(i, n)).Select
End Sub

Gruss Harry
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige