Excel VBA: kolom in tabel selecteren met kolomnaam in plaats van kolomnummer

Status
Niet open voor verdere reacties.

ErikdV

Gebruiker
Lid geworden
16 jun 2011
Berichten
81
Ik heb een excel bestand met een tabel.
Elke kolom heeft een naam

Ik wil in de datarange van de kolom [resultaat] alle 0-waardes verwijderen.
Ik wil specifiek naar de naam verwijzen en niet naar het kolomnummer.
De naam blijft namelijk altijd hetzelfde terwijl ik ook de mogelijkheid heb om extra kolommen toe te voegen zonder dat ik in het script het nummer moet wijzigen.
Ik kan echter nergens vinden hoe ik dan de cellen moet selecteren.
Wel heb ik een script met gebruik van kolomnummers dat werkt.


Public Sub tabel_resultaten_leegmaken()

Dim myTable As ListObject
Dim myArray As Variant
Dim x As Long

Application.ScreenUpdating = True

kol = 3
Debug.Print "de kolom is: " & kol

'Definieer tabel en array
Set myTable = ActiveSheet.ListObjects(1)
myArray = myTable.DataBodyRange

'Verwijder alle '0' uit de resultaatkolom (kol) in de tabel
For x = LBound(myArray) To UBound(myArray)
myTable.DataBodyRange(x, kol).Select
If Selection.Value = 0 Then
Selection.ClearContents
Debug.Print "rij " & x & ": " & myArray(x, kol) & " is verwijderd"​
Else
Debug.Print "rij " & x & ": " & myArray(x, kol)​
End If​
Next x
 

Bijlagen

Hoi,
Op die manier?
Gewenste kolom aanklikken in het formulier
Zie bijlage
Je kan ook wisselen tussen tabbladen, druk na het wisselen op vernieuwen
Groet
 

Bijlagen

Dit lijkt me voldoende.
Code:
Private Sub CMD1_Click()
With ActiveSheet.ListObjects(1).Range
  .AutoFilter ListBox1.ListIndex + 1, 0
  .Offset(1).EntireRow.Delete
  .AutoFilter
End With
End Sub

Private Sub CommandButton1_Click()
 Unload Me
End Sub

Private Sub UserForm_Initialize() 'Fill list
 ListBox1.List = Application.Transpose(Cells(1).CurrentRegion.Rows(1).Value)
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan