Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
940to944
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
940to944
940to944
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Gesamte Tabelle markieren - ohne letzte Zeile

Gesamte Tabelle markieren - ohne letzte Zeile
13.01.2008 23:46:25
memoli
Hallo zusammen,
ich möchte gerne das als Basis für eine Pivot-Tabelle immer eine Tabelle komplett markiert wird - ohne die letzte Zeile. Hat jemand eine Idee wie man das machen kann?
Die erste Zelle der Tabelle ist H6.
Ich kann zwar die gesamte Tabelle markieren aber weiss nicht wie ich die letzte wieder abziehen soll.
Der entsprechende Teil der das macht ist dieser hier - habe ein Makro aufgezeichnet:
Range("H6").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Die Tabelle ist leider dynamisch :-(
Hat vielleicht jemand Idee?
Grüße,
Memoli

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Gesamte Tabelle markieren - ohne letzte Zeile
14.01.2008 00:07:00
Gerd
Hallo Memoli,
etwas häufig selektiert! :-)
Range(Range("h6"), Range("h6").End(xlDown).End(xlToRight)).Offset(-1, 0).Select
Gruß Gerd

AW: Gesamte Tabelle markieren - ohne letzte Zeile
14.01.2008 01:08:13
Daniel
Hi
noch ne andere Methode, die letzte Zeile auzublenden:

With Range("H6").CurrentRegion
.Cells.Resize(.Rows.Count - 1).Select
End With


Gruß, Daniel

AW: Gesamte Tabelle markieren - ohne letzte Zeile
14.01.2008 00:31:00
memoli
Hallo Gerd,
vielen Dank. Genau was ich gesucht habe.
Super. Kann man eigentlich das was Du da geschrieben hast für eine Pivottabelle als Basis mitgeben?
Ich habe mal ein Makro aufgezeichnet und da sieht das irgendwie anders aus. Aus H6 wird dann irgendwie was anderes. So etwas mit RC usw.
Grüsse,
Memoli

Anzeige
AW: Gesamte Tabelle markieren - ohne letzte Zeile
14.01.2008 01:51:00
Daniel
HI
für das Erstellen der Pivot-Tabelle per Makro wird zum Festlegen des Zellbereiches der Datenquelle die Internationale Form der Z1S1-Schreibweise verwendet
z1S1: die Zelladdresse wird nicht als Kombination aus Buchstabe (Spalte ) und Zahl (Zeile) dargestellt, sondern sowohl für Zeile als auch für Spalte mit Zahlen. dabei wird durch den Kennbuchstaben deutlich gemacht , was gemeint ist:
Z für Zeile (international R für Row)
S für Spalte (international C für Column)
für Deinen Fall kannst du dir diesen Wert mit dieser Formel ermitteln:

Dim Zellbereich as string
with range("H1").currentregion
Zellbereich = "Tabelle1!" & .Resize(.Rows.Count - 1).address( true, true, xlr1c1)
end with
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= Zellbereich).CreatePivotTable...


Gruß, Daniel

Anzeige
AW: Gesamte Tabelle markieren - ohne letzte Zeile
14.01.2008 15:49:35
memoli
Hallo Daniel.
vielen Dank für die Antwort. Das hatte ich nicht gewusst.
Ich probiere das mal aus und gebe Feedback.
Grüsse,
memoli

AW: Gesamte Tabelle markieren - ohne letzte Zeile
14.01.2008 16:18:00
memoli
Hallo Daniel,
ich erhalte immer eine Fehlermeldung:
Compile error: Argument not optional
argument not optional
Es knallt genau bei --> ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=Zellbereich).CreatePivotTable
Hinten bei .CreatePivotTable
Mein Coding wo ich das einfüge (mit Makrorecorder aufgnommen) sieht so aus:
[Hinweis: Im Arbeitsblatt Tabelle1 ist die Tabelle beginnend bei H6 und in einem zweiten Arbeitsblatt mit dem Namen "Konzern" ist die Pivottabelle]

Sub Pivotdaten_aktualisieren()
' Pivotdaten_aktualisieren Makro
Application.ScreenUpdating = False
Sheets("Tabelle1").Select
'    ActiveWorkbook.Names("Druckbereich").Delete
Range("H6").Select
Selection.End(xlUp).Select
Range("I6").Select
ActiveCell.FormulaR1C1 = "Titel1"
Range("K6").Select
ActiveCell.FormulaR1C1 = "Titel2"
Range("M6").Select
ActiveCell.FormulaR1C1 = "Titel3!"
Range("H6").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
ActiveWorkbook.Names.Add Name:="pivotdaten", RefersToR1C1:=Selection
Sheets("Konzern").Select
Range("A3").Select
'   ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh
Range("A44").Select
Application.ScreenUpdating = True
End Sub


Viele Grüsse,
Wo genau muss man das denn hinmachen?
Grüsse,
Memoli

Anzeige
AW: Gesamte Tabelle markieren - ohne letzte Zeile
14.01.2008 20:45:21
Daniel
HI
sorry, Pivot hab ich bisher immer von Hand erstellt, (weils so einfach geht), nie per Makro.
meine Empfehlung ist, einfach den Code des erstellens komplett aufzeichnen und dann in diesem Code die einzelnen Werte geziehlt ersetzen.
Hier mal ein Beispiel, wie es funktioniert ( die Datentabelle beginnt ab A1)

Sub Makro1()
Dim txt As String
txt = Range("A1").CurrentRegion.Address(True, True, xlR1C1)
txt = ActiveSheet.Name & "!" & txt
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
txt).CreatePivotTable TableDestination:="", TableName:= _
"PivotTable1", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
ActiveSheet.PivotTables("PivotTable1").AddFields RowFields:="xxx"
ActiveSheet.PivotTables("PivotTable1").PivotFields("a").Orientation = _
xlDataField
End Sub


Gruss, Daniel

Anzeige
AW: Gesamte Tabelle markieren - ohne letzte Zeile
17.01.2008 10:58:00
Memoli
Hallo Daniel,
das ist schon echt Knifflig.
Eine Sache probiere ich noch zu der ich keine Antwort im forum finden kann.
Ich markiere den Bereich den ich brauche mit:
myrange = Range(Range("H6"), Range("H6").End(xlDown).End(xlToRight)).Offset(-1, 0).Select
Wenn ich nun den Bereich myrange meiner Pivottabelle schreiben will klappt das nicht.
Als ich dann
MsgBox (myrange)
gemacht habe steht da als value "Wahr" drin aber nicht die Range.
Da die Pivottabelle und die Quelltabelle auf unterschiedlichen Tabellenblättern liegen (und auch liegen müssen) weiss ich nicht warum da nur ein Boolean reingeschrieben wird?
Hast Du hier eine Idee?
Grüsse,
Memoli

Anzeige
AW: Gesamte Tabelle markieren - ohne letzte Zeile
17.01.2008 23:15:18
Daniel
HI
da kann ja auch nichts sinnvolles rauskommen.
.SELECT ist ne Anweisung (nämlich die Anweisung, einen bestimmten Zellbereich zu selektieren)
und eine Anweisung einer Variablen zuzuordnen ist Blödsinn.
was man machen kann, ist bestimmte Eigenschaften des RANGE-Objektes einer Variable zuzuweisen
wie zum Beispiel die Adresse mit .Address, oder die Anzahl der Zellen mit .Cells.Count oder die erste Zeile des Zellbereichs mit .Rows, oder die erste Spalte mit .columns
welchen Wert soll den myRange bekommen und als was für einen Variablentyp hast du myRange deklariert?
Gruß, Daniel

Anzeige
AW: Gesamte Tabelle markieren - ohne letzte Zeile
23.01.2008 13:48:00
Memoli
Hallo Daniel,
im Grunde hatte ich probiert mit
myrange = Range(Range("H6"), Range("H6").End(xlDown).End(xlToRight)).Offset(-1, 0).Select
die gesamte Tabelle ab Zelle H6 zu markieren aber ohne die letzte Zeile.
myrange hatte ich so definiert:
Dim myRange as Range
Gruß,
Memoli

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige