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

Excel VBA Spalte "AD" ansprechen

Excel VBA Spalte "AD" ansprechen
08.02.2016 14:11:28
Bernd
Hallo Forum-Gemeinde,
ich wollte mal fragen, wie kann ich in Excel über den Befehl
Const Spalten = "BFJNRVZ"
auch die Spalte "AD" ansprechen, also nicht die Spalte A und D sondern die Spalte AD nach Z
LG
Bernd

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel VBA Spalte "AD" ansprechen
08.02.2016 14:43:30
Michael
Hallo Bernd!
Mit Const Spalten = "BFJNRVZ" sprichst Du (noch) nichts an; damit wird nur eine Konstante deklariert mit dem Wert "BFJNRVZ".
Auf eine bestimmte Spalte kannst Du Dich bspw. so beziehen Columns("AD").Select
wobei das auch davon abhängig ist, wozu Du eine Spalte ansprechen möchtest...
LG
Michael

AW: Excel VBA Spalte "AD" ansprechen
09.02.2016 06:59:30
Bernd
Hallo Michael,
hier nochmal der gesamte Code:
Dim maxZeile&, maxZeile2&, s&
'SpaltenStartbereiche B F J N R V Z'
Const Spalten = "BFJNRVZ"
Const überschriftenzeile = 13
For s = 1 To Len(Spalten)
maxZeile = BlattVon.Range(Mid(Spalten, s, 1) & BlattVon.Rows.Count).End(xlUp).Row
If maxZeile > überschriftenzeile Then
maxZeile2 = BlattNach.Range(Mid(Spalten, s, 1) & _
BlattNach.Rows.Count).End(xlUp).Row
BlattVon.Range(Mid(Spalten, s, 1) & überschriftenzeile + 1). _
Resize(maxZeile - überschriftenzeile, 3).Copy
BlattNach.Range(Mid(Spalten, s, 1) & maxZeile2 + 1).PasteSpecial xlPasteValues
End If
Next
und beim Kopieren der Daten, gibt es Tabellen, die über die Spalte Z hinausgehen und die sollen ja auch mit rangezogen werden.
Ich hatte den Code so verstanden, das die Werte in die Konstante Spalten übernommen werden und das er dann dort mitarbeitet.
LG
Bernd

Anzeige
Da wirst du wohl Zwischenräume in der ...
09.02.2016 04:10:48
Luc:-?
…Konstanten vorsehen müssen, Bernd;
mit Split(Spalten) könntest du die dann in ein Array von SpaltenBezeichnern verwandeln.
Morrn, Luc :-?
Besser informiert mit …

AW: Da wirst du wohl Zwischenräume in der ...
09.02.2016 07:00:17
Bernd
Hallo Luc,
hier nochmal der gesamte Code:
Dim maxZeile&, maxZeile2&, s&
'SpaltenStartbereiche B F J N R V Z'
Const Spalten = "BFJNRVZ"
Const überschriftenzeile = 13
For s = 1 To Len(Spalten)
maxZeile = BlattVon.Range(Mid(Spalten, s, 1) & BlattVon.Rows.Count).End(xlUp).Row
If maxZeile > überschriftenzeile Then
maxZeile2 = BlattNach.Range(Mid(Spalten, s, 1) & _
BlattNach.Rows.Count).End(xlUp).Row
BlattVon.Range(Mid(Spalten, s, 1) & überschriftenzeile + 1). _
Resize(maxZeile - überschriftenzeile, 3).Copy
BlattNach.Range(Mid(Spalten, s, 1) & maxZeile2 + 1).PasteSpecial xlPasteValues
End If
Next
und beim Kopieren der Daten, gibt es Tabellen, die über die Spalte Z hinausgehen und die sollen ja auch mit rangezogen werden.
Ich hatte den Code so verstanden, das die Werte in die Konstante Spalten übernommen werden und das er dann dort mitarbeitet.
LG
Bernd

Anzeige
AW: Da wirst du wohl Zwischenräume in der ...
09.02.2016 09:16:25
Michael
Hallo Bernd!
Dann teste mal so:
Sub b()
'Einbezogene Spalten: B F J N R V Z + AD (nach Z)
Const Spalten As String = "B,F,J,N,R,V,Z,AD" 'Spaltenbezeichnungen mit Komma trennen!
Const Überschriftenzeile As Long = 13
Dim maxZeile As Long
Dim maxZeile2 As Long
Dim s As Long
Dim arrSpalten
arrSpalten = Split(Spalten, ",")
For s = 1 To UBound(arrSpalten)
maxZeile = BlattVon.Range(arrSpalten(s) & BlattVon.Rows.Count).End(xlUp).Row
If maxZeile > Überschriftenzeile Then
maxZeile2 = BlattNach.Range(arrSpalten(s) & _
BlattNach.Rows.Count).End(xlUp).Row
BlattVon.Range(arrSpalten(s) & _
Überschriftenzeile + 1).Resize(maxZeile - Überschriftenzeile, 3).Copy
BlattNach.Range(arrSpalten(s) & _
maxZeile2 + 1).PasteSpecial xlPasteValues
End If
Next s
End Sub
Restlichen Code habe ich jetzt nicht getestet, mangels Kenntnis Deiner konkreten Verhältnisse.
LG
Michael

Anzeige
@Michael: Wenn du statt Komma wie von ...
09.02.2016 14:18:16
...
…mir vorgeschlagen Leerzeichen (normaler Zwischenraum, engl space) verwenden würdest, würde arrSpalten = Split(Spalten) reichen. Außerdem könnte arrSpalten auch in dieser Form deklariert wdn: arrSpalten() As String Aber das ist hier im Prinzip egal* und ich mache das auch nur selten.
* Der Unterschied besteht nur darin, dass es bei dir ein Variant mit einem Array vom (Unter-)Typ Text und im anderen Fall ein normales Text-Array ist (beide als horizontaler Vektor).
Gruß, Luc :-?

@ Luc: Ja...
09.02.2016 14:25:12
Michael
Hallo,
...ist klar - aber arrSpalten() As String ist ja hier wirklich nicht notwendig.
Die Trennung mit Leerzeichen ist natürlich möglich, mir war hier aber die Trennung der Element mit Komma optisch sympathischer - frag mich aber nicht warum ¯\_(ツ)_/¯.
LG
Michael

Anzeige
Komma wäre sogar sinnvoll, wenn man die ...
09.02.2016 14:30:02
Luc:-?
…Konstante auch zur Bildung unzusammenhängender Bereiche verwenden wollte, Michael. ;-)
Luc :-?

Das schon, war aber nicht gefragt...
09.02.2016 14:33:08
Michael
...ein bisserl selber Basteln ist dann schon auch noch erlaubt. :-)
Bin ja mal auf die Rückmeldung gespannt...
LG
Michael

AW: Das schon, war aber nicht gefragt...
09.02.2016 15:11:46
Bernd
Recht herzlichsten Dank an euch beide.
Der Code von Michael reicht mir soweit.
Bei Bedarf kann ich das ja noch mit Arrays machen.
LG
Bernd

Freut mich, Danke für die Rückmeldung und...
09.02.2016 16:12:33
Michael
Hallo Bernd,
Bei Bedarf kann ich das ja noch mit Arrays machen.
Mein Code macht das mit einem Array ;-). Luc hat nur eine andere, und je nach Anwendung ggf. "bessere" ajF aber effizientere Methode vorgeschlagen, dieses zu füllen.
LG
Michael
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige