• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Das neue Jahr beginnt wie das alte - natürlich mit einem neuen Fotowettbewerb! Auch im Monat Januar freuen wir uns auf Eure Einsendungen. Wie es weitergeht, wisst Ihr ja - Hier geht es lang --> Klick

versuche 100 Spalten in VBA for Excel nacheinander zu selektieren

Roland_1

Gala
Registriert
15.06.11
Beiträge
50
Ich versuche bei Excel (in dem Falle 100) Spalten zu selektieren. Schnell stoße ich auf das Problem, dass ich einen Spaltenkopf bräuchte, der nicht mit "A1" usw. startet, sondern mit "AA1". Irgendwo habe ich das auch schon mal gelesen, wie man sowas macht, habe aber die Idee nicht mehr nachbauen können. Weiß jemand von Euch Rat? Hier mal der kurze Quellcode:
Code:
Sub spalten_aufbauen()
Dim x, y, i, z, h As Integer
Dim start, bereich As Range
Dim s, e, ber As String
x = 1
y = 10
i = 1
For x = 1 To 100
    s = Chr(Asc("A") + x) & Chr(Asc(y))
    e = Chr(Asc("A") + x) & Chr(Asc(y)) + y
    ber = s & ":" & e
    Set start = Range(ber)
    start.Select
Next
End Sub

Kurze Hilfe wäre gut.

Vielen Dank an Euch.

Gruß
Roland_1
 

ImpCaligula

deaktivierter Benutzer
Registriert
05.04.10
Beiträge
13.859
Frage... wie soll das Makro funktionieren? Du willst nacheinander Spalte A, dann B, dann C usw. selektieren und markieren? Also nicht auf einen Schlag von A bis.... ?
 

Dinofelis

Gast
Ich verstehe nicht, wofür man eine Schleife benötigt, um einen Bereich zu markieren.

Man kann alles mit einem einzige Zeile markieren. Nur als Beispiel, es gibt auch andere Möglichkeiten: RANGE(H:L)

Was willst du eigentlich tun?
 

ImpCaligula

deaktivierter Benutzer
Registriert
05.04.10
Beiträge
13.859
Deswegen dachte ich, frage ich auch mal los... bevor wir hier mit Vorschlägen komme...
 

Roland_1

Gala
Registriert
15.06.11
Beiträge
50
zur Erklärung meines Problems

Erstmal danke für die schnelle Reaktion,

ja, ich könnte alles in einem Rutsch markieren, jedoch soll mein Makro bestimmte Spalten in unterschiedlichen Farben färben, wenn im Zellinhalt z. B. der Wert "Urlaub" oder "Freunde" oder sonst was steht.

zellen_einfaerben.jpg

In dem Beispielfall sollen 3 Spalten (abhängig von der Bezeichnung darüber) unterschiedlich gefärbt werden. Denkbar wären aber noch mehr Spalten, je nachdem, wie viele Spalten ich dem Oberbegriff farblich zuordnen will. Von mir aus auch 10 Spalten, egal ob das nun Sinn macht oder nicht. Und dann komme ich irgendwann eben in die Situation, wo ich irgendwie auf den Range mit "AA1", "AB1" etc. zugreifen können muss. Ich möchte die Logik begreifen, wie man sowas anstellen kann, auch wenn's nicht unbedingt logisch oder im strengen Sinne sinnvoll erscheint.

Vielleicht konnte ich mich jetzt etwas klarer ausdrücken.:-[

Gruß
Roland_1
 

Dinofelis

Gast
Das schreit geradezu nach bedingter Formatierung...

Kennst du das? Wenn nicht, können wir dir helfen!

Sagen wir mal so: Jegliches Makro oder VB-Script ist von seiner Natur her *böse*, weil es über die Jahre hinweg ständig gepflegt werden will. Weiterhin kann man die meisten Dinge auch ohne erledigen.
 

Roland_1

Gala
Registriert
15.06.11
Beiträge
50
ne, bedingte Formatierung kenne ich nicht. Ich habe es zwar mal beim "selektiven Überfliegen" eines Handbuches wahrgenommen, mich aber nie damit beschäftigt. Könnte man so was denn auf meinen konkreten Fall anwenden? Und wenn ja, wie?
 

Dinofelis

Gast
Könnte man so was denn auf meinen konkreten Fall anwenden?

Kommt darauf an, was du genau tun willst.

Du kannst drei bedingte Formatierungen definieren, die nacheinander abgearbeitet werden. Die erste, die zutrifft, wird verwendet. Außerdem kann man Formeln verwenden, anstatt sich direkt auf einen Zellwert zu beziehen. Das macht sehr vieles möglich. Z.B. könntest du den Wert einer bestimmten Zelle mit fester Referenz prüfen, um alle Zellen eines Bereichs einzufärben.

Nachfolgend ein Beispiel, in dem alle Zellen in Spalte D die gleiche bedingte Formatierung haben:

73219d1308664243-versuche-100-spalten-screen-shot-2011



Noch ein Beispiel mit drei bedingten Formaten, die sich auf den Text in der Kopfzeile der Tabelle beziehen:

73220d1308665012-versuche-100-spalten-screen-shot-2011
 

Anhänge

  • Screen shot 2011-06-21 at 15.41.55.png
    Screen shot 2011-06-21 at 15.41.55.png
    81,5 KB · Aufrufe: 401
  • Screen shot 2011-06-21 at 16.03.11.png
    Screen shot 2011-06-21 at 16.03.11.png
    92,2 KB · Aufrufe: 408
Zuletzt bearbeitet von einem Moderator:

Roland_1

Gala
Registriert
15.06.11
Beiträge
50
Kommt darauf an, was du genau tun willst.

Nachfolgend ein Beispiel, in dem alle Zellen in Spalte D die gleiche bedingte Formatierung haben.

Du kannst drei bedingte Formatierungen definieren, die nacheinander abgearbeitet werden. Die erste, die zutrifft, wird verwendet. Außerdem kann man Formeln verwenden, anstatt sich direkt auf einen Zellwert zu beziehen. Das macht sehr vieles möglich.

attachment.php

ne, ich glaube, das kommt nicht so in Frage.
Ich erzähle mal kurz, was ich überhaupt machen will/muss: Ich will aus einem exportierten Excelfile, dessen Inhalt sich aber ändern kann, eine Art Übersicht machen. Ich weiß aber vorher nicht, wie viele Spalten ich faktisch benötigen werde. Daher muss ich dieses importiere file solange lesen, bis ein bestimmter Wert erscheint (bzw. bis eine (demnach die letzte) Zeile dieses files leer ist!). Erst dann kann ich anfangen und rauskriegen, ob z. B. diese Überschrift "Freunde" oder "Urlaub" oder so überhaupt vorhanden ist und ich demzufolge eine solche Spalte anlegen muss. Ich habe dazu (habe ich aber leider im Büro, habe derzeit Urlaub ;)) eine kleine Userform gebaut, die mir während des Einlesens schon bestimmte Auswahlkriterien lässt, die ich wählen kann (z. B. ein Datum von ... bis). Ich brauche dann nur einen Button drücken, und schon läuft diese Auswertung. Das klappt auch alles ganz gut, nur mit dem anschließenden Umrahmen und Einfärben der entsprechenden Spalten komme ich nicht klar, weil immer dieser Range-Fehler mit dem Überlauf auftritt, sobald ich eine bestimmten bestimmten Range verlasse (habe ich ja anfangs beschrieben). Wenn müsste ich diese Lösung schon codemäßig hinkriegen. Ich weiß, dass ich das schon mal irgendwo gesehen habe, weiß aber nicht mehr, wie der Grundgedanke dazu lautet.:-c:-c
 

Dinofelis

Gast
ne, ich glaube, das kommt nicht so in Frage.
Ich erzähle mal kurz, was ich überhaupt machen will/muss:

OK, das habe ich so weit verstanden. Ich bin (war) recht fit in VB für Excel, aber derzeit fehlt es mir an Muße, mich da hineinzudenken.

Ich muss deine Information auch noch ein wenig sacken lassen, vielleicht fällt mir noch etwas ein.

Wenn es nur um das Festellen von Werten geht (also ob "Freunde", "Urlaub" etc vorhanden sind), dann könntest du auch SVERWEIS oder HVERWEIS oder andere, ähnliche Formeln in einer zweiten Tabelle verwenden, die dir dann anzeigen, ob und ggf. wo diese Informationen in der anderen Tabelle vorhanden sind.

Alternativ könntest du auch in den importierten Daten eine Spalte oder Zeile einfügen, die bedingte Formatierungen oder Spezielle Formeln enthält, um Spalten nach gewissen Kriterien zu formatieren oder zu markieren (in dieser Zeile allerdings nur).

Und weiterhin könntest du die Daten auch transponieren (also Zeilen und Spalten vertauschen, dafür gibt es eine Funktion, die findest du unter "Bearbeiten -> Inhalte einfügen..."). Die vorherigen Spaltenüberschriften stehen nachd em Transponieren untereinander. Jetzt fügst du ganz oben noch eine Zeile ein, schriebst da irgendwas hinein und schaltest mit der Markierung in der obersten Zeile "Daten -> Filter -> Autofilter" ein. Mit dem Pop-Up-Menü des Autofilter kannst du ganz bequem alle Einträge ausfiltern, und sie werden dir auch im Pop-Up direkt angezeigt.

Das letztere könnte doch sein, was du brauchst ... :)

Ach ja, und schließlich gibt es in Excel auch Pivot-Tabellen, und das ist dann der goldene Pfad, weil es das genialste Tool zum Auswerten von Inhalten großer Tabellen ist. Aber leider kenne ich mich damit nicht sehr gut aus, und kann zum Thema "Pivot-Tabellen" keinen guten Rat geben. Aber ich weiß, dass es ein fantastisches Tool ist und bewundere immer die Pivot-Tabellen, die meine Kollegen erstellen.