Toon posts:

[EXCEL] VBA, column nummer naar column letter

Pagina: 1
Acties:
  • 1.758 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik vraag in VBA de column uit van een bepaalde cel en dan krijg ik (bijvoorbeeld) 3 maar dat wil ik niet want ik wil graag weten dat dat dus colomn "C" is. Is er een functie voor om dat te converteren of om de Column letter uit te vragen?

Ik gebruik nu dus:

intTmpCell = cell.column

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Of je parsed range.address of je rekent het even uit en zet hem om met chr$()

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • macnerd
  • Registratie: Oktober 2002
  • Laatst online: 28-08 10:14

macnerd

No Apples please :-)

De door Niesje genoemde methode is een mogelijkheid, maar ik heb nog een complete functie uitgedokterd die het simpelweg berekent.


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Function KolomNaam(Kolom)

 'Alle gebruikte letters (in alfabetische volgorde!)
 'Spatie is bedoeld voor kolommen < 27 (dus A-Z)
 KolomLetters = " ABCDEFGHIJKLMNOPQRSTUVWXYZ"

 'Bereken de kolomletters
 KolomLetter_links = Int((Kolom - 1) / 26)
 KolomLetter_rechts = Kolom - (KolomLetter_links * 26)

 'Stel de kolomnaam samen o.b.v. de gevonden positie in KolomLetters
 KolomNaam = Trim(Mid(KolomLetters, KolomLetter_links + 1, 1) + _ 
             Mid(KolomLetters, KolomLetter_rechts + 1, 1))

End Function

[ Voor 10% gewijzigd door macnerd op 03-08-2004 15:17 ]

MacNerd


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Als we het multiuser toch voor gaan kauwen dan doe ik even mee :)
code:
1
2
3
4
5
6
7
8
Public Function KolomTxt(Kolom As Long) As String
    Dim strLinks As String
    If Kolom > 26 Then
        strLinks = Chr$(Int(Kolom / 26) + 64)
        Kolom = Kolom Mod 26
    End If
    KolomTxt = strLinks & Chr$(Kolom + 64)
End Function

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • macnerd
  • Registratie: Oktober 2002
  • Laatst online: 28-08 10:14

macnerd

No Apples please :-)

Je kunt inderdaad ook gebruik maken van het feit dat A-Z een oplopende reeks is vanaf ASCII-code 65...

De methode die ik gebruikt heb, is daarnaast ook te gebruiken voor hexadecimaal (voor decimale getallen tot 255). Kan ook handig zijn.

MacNerd


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Ik vind Hex() nóg handiger. :+

[ Voor 16% gewijzigd door Lustucru op 03-08-2004 16:37 ]

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • macnerd
  • Registratie: Oktober 2002
  • Laatst online: 28-08 10:14

macnerd

No Apples please :-)

Hmm, die kende ik nog niet. Bedankt voor de tip Niesje!

MacNerd

Pagina: 1