Live-Forum - Die aktuellen Beiträge
Datum
Titel
18.04.2024 18:04:29
18.04.2024 16:33:24
Anzeige
Archiv - Navigation
828to832
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
828to832
828to832
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA / Excel: Spalten in Schleife durchlaufen

VBA / Excel: Spalten in Schleife durchlaufen
12.12.2006 16:05:14
scarvy
Ähm ja, also ich weiss, ist ein blöder Titel... :p
Ich habe vor einige Auswertungen von Excel-Tablellen zu automatisieren mit VBA. Dazu wird immer die Spalte 'A' markiert und dann zu Beginn die Spalte 'B'. Dann die 'A' und 'C', danach 'A' und 'D' usw. Es handelt sich dabei um ca. 35 Spalten. Aus den markierten Spalten wird dann eine Grafik generiert, die alle hintereinander in einem anderen Arbeitsblatt gespeichert werden sollen.
Mein Problem ist jetzt das Markieren der Spalten. Im ersten Durchlauf also 'A' und 'B'.
Ich habe es bis jetzt damit probiert:
[CODE]
Sheets("arbeitsblatt").Range(Columns(1), Columns(2)).Select
[/CODE]
Ich wollte dann halt über den Index der einzelnen Spalten auf diese zugreifen und den Index danach um 1 erhöhen. Aber leider ist ja bei der oben aufgeführten Lösung der Bereich 'von...bis' angegeben und nicht: 'markiere spalte x und y'.
Wie kann ich also machen, dass es wie hier geht:
[CODE]Range("A:A,B:B,E:E").Select[/CODE]
Hierbei werden ja nur die Spalten A, B, und E markiert.
Ich müsste aber halt über den Index zugreifen, damit ich ihn incrementieren kann...
schon einmal vielen Dank
Raphael

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA / Excel: Spalten in Schleife durchlaufen
12.12.2006 16:10:53
Matthias
Hallo Raphael,
ist die Selektion eine Krücke für deinen Code oder soll den Anwender damit eine Möglichkeit haben, dem Makro Argumente mitzugeben?
Zeig doch mal mehr Code.
Gruß Matthias
AW: VBA / Excel: Spalten in Schleife durchlaufen
12.12.2006 16:23:21
scarvy
Hallo,
also folgendes: Ich habe eine Tabelle mit ca. 35 Spalten. Es soll nun von jeder Spalte eine Grafik ertellt werden, allerdings immer in Verbindung mit der ersten (also 'A').
Der Anwender braucht also quasi keine Argumente für das Makro, da sowieso alle Spalten durchlaufen werden müssen.
zuerst die letzte Zeile/spalte ermitteln:

r = sheets("arbeitsblatt").UsedRange.SpecialCells(xlCellTypeLastCell).Row
c = Sheets("arbeitsblatt").UsedRange.SpecialCells(xlCellTypeLastCell).Column

und nun hatte ich halt vor diese zu durchlaufen, solange int i kleiner c und dabei halt jeweils die Spalte 'A' und die aktuelle Spalte zu markieren, um die Grafik aus diesen beiden Spalten zu erstellen.
... man man mit dem Ausdrücken bei Problemen kanns echt schwierig werden :)
ich hoffe das ist so einigermaßen verständlich... viel code gibts noch nciht zu sehen, da ich mit diesem Problem ziemlich am Anfang hängen geblieben bin...
besten Dank
Raphael
Anzeige
AW: VBA / Excel: Spalten in Schleife durchlaufen
12.12.2006 16:14:49
Reinhard
Hi Raphael,
anstatt der msgbox dann dein Code
Option Explicit
Sub Makro3()
Dim Bereich, n
For n = 2 To 10
Set Bereich = Union(Columns(1), Columns(n))
Bereich.Select
MsgBox n
Next n
End Sub

Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
AW: VBA / Excel: Spalten in Schleife durchlaufen
12.12.2006 16:28:39
scarvy
Hey super!!
Das ist genau das was ich brauche... und ich als VBA-Anfänger such mich 4 Std. dumm und dusselig. :)
Also vielen dank an alle!!
Gruß
Raphael
AW: VBA / Excel: Spalten in Schleife durchlaufen
13.12.2006 12:18:51
scarvy
So, neues Problem -- neues Glück :-)
Habe jetzt folgenden code:

int i = Sheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Column
For n = 2 To i
Set Bereich = Union(Columns(1), Columns(n))
Bereich.Select

Nun habe ich ja vor ein neues Diagramm zu erzeugen und in ein vorhandenes Tabellenblatt einzufügen. Probieren tue ich es hiermit:

Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Sheets(2), PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="diagramm"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = _
"BlaBla"
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With

Mein Problem liegt bei "source:=" (da hänge ich zumindest momentan. Was danach kommt weiss ich nicht... :-) ). Ich weiss nicht wie ich hier auf das aktuelle Tabellenblatt und auf die schon vorher markierten Spalten verweise.
Noch mal kurz: Die Daten liegen im Tabellenblatt mit index(2), aus diesen Daten soll eine Grafik (also insgesamt ja mehrere) erzeugt werden und im Tabellenblatt "diagramm" mit index(1) gespeichert werden.
mmhh ich hoffe ihr versteht mich
besten Dank und Gruß
Raphael
Anzeige
AW: VBA / Excel: Spalten in Schleife durchlaufen
13.12.2006 12:44:55
Reinhard
Hi Raphael,
dann war das bisherige alles umsonst, denn zum Diagramm erzeugen muss nix selektiert sein :-)
Am besten du beendest hier und stellst eine neue Anfrage:
wie erzeuge ich per Vba ein LinieneDiagramm mit mehreren Linien, wobie die X-Werte immer
in A stehen, B bis H enthalten die y-Werte, o.ä.
Dazu kannst du ja deinen Code posten, aber als komplette Sub, denn dann bleiben
Formatierungen erhalten.

Gruß
Reinhard
AW: VBA / Excel: Spalten in Schleife durchlaufen
13.12.2006 13:00:59
Matthias
Hallo Raphael,
lass das Bereich.Select weg und schreibe dann:

ActiveChart.SetSourceData Source:=Bereich, PlotBy:=xlColumns

Bereich hast ja vorher den beiden spalten aus Sheets(2) zugewiesen.
Gruß Matthias
Anzeige

13 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige