PDA

Vollständige Version anzeigen : Spaltenbezeichnung zurückgeben lassen?


Trantüte
28.06.2006, 11:49
hi

wie kann ich mir in VBA anhand der spaltennummer die spaltenbezeichnung wiedergeben lassen.

Beispiel:

ich weiß das ein wert in spalte 192 steht. nun will ich aber wissen was das für eine spalte ist alse in dem fall wäre spalte 192 die spalte GJ.


Da gibts doch bestimmt eine funktion die das zurück gibt oder?

ich würde mich über hilfe freuen :)

mfg david

Woody
28.06.2006, 11:57
Hallo David,

wenn Du schon in VBA bist, ist es doch einfacher mit den Indexzahlen zu arbeiten, oder?
Bsp.: Cells(1, 192).value

rayek
28.06.2006, 12:07
hallihallo,
ich glaube trantüte wollte sich die addresse der zelle ausgeben lassen, nicht den
inhalt selbiger...

Sub blah()
Dim celladdress As String
celladdress = ActiveCell.Address

celladdress = Mid(celladdress, 2)
MsgBox celladdress
'
If (InStr(1, celladdress, "$")) Then
celladdress = Replace(celladdress, "$", "")
MsgBox celladdress
End If

End Sub

Wenn dem so ist, geht das mit folgendem schnippl....
;)
liebe grüsse,
rayek

Woody
28.06.2006, 12:44
Hallo rayek,

mir ging es weniger um den Zelleninhalt als um die Verwendung der Spaltennummer in Cells(...).

Dein Code zeigt leider noch die Zeilennummer mit an - was wohl nicht gewünscht ist. Vielleicht ist dieser Code hier für David geeigneter:

Sub Spaltenbuchstabe()
Dim strCOL As String
strCOL = Mid(ActiveCell.address, 2, 2)
'Falls nur ein Spaltenbuchstabe
If Right(strCOL, 1) = "$" Then
strCOL = Mid(ActiveCell.address, 2, 1)
End If
MsgBox strCOL
End Sub

rayek
28.06.2006, 12:57
hi, woody.
stimmt, er wollte ja lediglich die spalte haben.... :rolleyes:
hihi, voll verplant...
naja, jetz ham wa ihn "zugebombt" mit schnippln, da wird jetz wohl das passende dabei sein... ;)

Lumpensammler
28.06.2006, 16:01
Hallo, David,

was mich interessieren würde: wozu benötigst Du die Angabe der Spalte als Buchstabe?

Gruß
LS

Trantüte
30.06.2006, 08:19
hi alle miteinanderer

und ein fröhliches:

"BERLIN BERLIN, WIR FAHREN NACH BERLIN!"

schönen dank leicht abgewandelt habt ihr mich auf den richtigen weg gebracht.

so hab ichs jetzt gemacht:


strAdresse = .Cells(1, intSpalte_Anfang).Address(False, False)
strSpalte_Anfang = Mid(strAdresse, 1, Len(strAdresse) - 1)


@lumpensammler ich brauchte die spalte, um sie in einer formel die per VBA in eine Tabelle geschrieben wird, zu schreiben.
hintergrund: der user gibt den monat ein also 1=Januar etc. je nach monats eingabe soll per summewenn das ergebnis aus einer anderen spalte angezeigt werde. da mir nix besseres eingefallen ist lasse ich immer bei monatsänderung die formeln neu ausfüllen. und leider hatte ich ja nur die Zahl der spalte (also x+monat) aber summewennformel braucht ja buchstaben :)

mfg david

Lumpensammler
30.06.2006, 13:40
Hallo, David,

dafür benötigt man bestimmt keinen Buchstaben, ehrlich.

Gruß
LS

Trantüte
04.07.2006, 07:10
hi lumpi

wie hättest du es denn gemacht?

in spalte BB stehen die Beträge von Januar, BC Februar und so weiter.

dann soll je nach eingabe des monats also 1 für Januar, 2 für Februar etc. die summe der warengruppen aus der entsprechenden spalte gebildet werden. also per summewenn funktion.

mfg david

myfake
04.07.2006, 08:49
Hallo David,

vielleicht ist ja auch eine Lösung ohne VBA für Dich interessant:

<P><blockquote><table border=3 cellpadding=1><tr><td>&nbsp;</td><td align=center bgcolor=#C0C0C0>A</td><td align=center bgcolor=#C0C0C0>B</td><td align=center bgcolor=#C0C0C0>C</td><td align=center bgcolor=#C0C0C0>D</td><td align=center bgcolor=#C0C0C0>E</td><td align=center bgcolor=#C0C0C0>F</td><td align=center bgcolor=#C0C0C0>G</td><td align=center bgcolor=#C0C0C0>H</td><td align=center bgcolor=#C0C0C0>I</td></tr><tr><td align=center bgcolor=#C0C0C0>1</td><td>Welcher&nbsp;Monat</td><td>Welche&nbsp;WG</td><td>Ergebnis</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td align=center bgcolor=#C0C0C0>2</td><td>Februar</td><td>WG&nbsp;2</td><td>17,7</td><td>&nbsp;</td><td>Januar</td><td>Februar</td><td>M&auml;rz</td><td>&nbsp;</td><td>Warengruppen</td></tr><tr><td align=center bgcolor=#C0C0C0>3</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>WG&nbsp;1</td><td>6,60</td><td>7,70</td><td>1,10</td><td>&nbsp;</td><td>WG&nbsp;1</td></tr><tr><td align=center bgcolor=#C0C0C0>4</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>WG&nbsp;2</td><td>5,20</td><td>0,80</td><td>8,80</td><td>&nbsp;</td><td>WG&nbsp;2</td></tr><tr><td align=center bgcolor=#C0C0C0>5</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>WG&nbsp;3</td><td>5,70</td><td>4,10</td><td>2,40</td><td>&nbsp;</td><td>WG&nbsp;3</td></tr><tr><td align=center bgcolor=#C0C0C0>6</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>WG&nbsp;1</td><td>0,60</td><td>9,20</td><td>6,70</td><td>&nbsp;</td><td>WG&nbsp;4</td></tr><tr><td align=center bgcolor=#C0C0C0>7</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>WG&nbsp;2</td><td>9,50</td><td>10,00</td><td>1,10</td><td>&nbsp;</td><td>WG&nbsp;5</td></tr><tr><td align=center bgcolor=#C0C0C0>8</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>WG&nbsp;3</td><td>0,20</td><td>4,10</td><td>4,60</td><td>&nbsp;</td><td>WG&nbsp;6</td></tr><tr><td align=center bgcolor=#C0C0C0>9</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>WG&nbsp;1</td><td>1,10</td><td>0,30</td><td>4,10</td><td>&nbsp;</td><td>WG&nbsp;7</td></tr><tr><td align=center bgcolor=#C0C0C0>10</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>WG&nbsp;2</td><td>7,90</td><td>6,90</td><td>5,80</td><td>&nbsp;</td><td>WG&nbsp;8</td></tr><tr><td align=center bgcolor=#C0C0C0>11</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>WG&nbsp;3</td><td>7,10</td><td>0,40</td><td>7,00</td><td>&nbsp;</td><td>WG&nbsp;9</td></tr><tr><td align=center bgcolor=#C0C0C0>12</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>WG&nbsp;10</td></tr><tr><td align=center bgcolor=#C0C0C0>13</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr></td></tr></table></blockquote></P>

- in A2 wählst Du den auszuwertenden Monat aus (Gültigkeitsliste - hier: E2:G2)
- in B2 wählst Du die auszuwertende Warengruppe aus (Gültigkeitsliste - hier: I3:I12)
- Formel in C3: =SUMMEWENN(D3: D11;B2;BEREICH.VERSCHIEBEN(D3: D11;0;VERGLEICH(A2;E2:G2;0)))
->natürlich ohne Leerzeichen - aber sonst wird halt ein ":D" draus ;)

cu
myfake

Woody
04.07.2006, 08:55
Hallo myfake,
es geht auch ohne Leerzeichen: aktiviere "Grafische Smileys deaktivieren"
=SUMMEWENN(D3:D11;B2;BEREICH.VERSCHIEBEN(D3:D11;0;VERGLEICH(A2;E2:G2;0)))

Trantüte
06.07.2006, 11:23
hi leute

ausgezeichtnet so klappts auch ohne VBA vielen dank :)
*Hut zieh*

mfg david