Behoud kolommen, reorganiseer ze, en verwijder de andere kolommen

Status
Niet open voor verdere reacties.

goof2808

Gebruiker
Lid geworden
2 feb 2007
Berichten
130
Hi

Ik importeer dagelijks een csv in een werkblad, hier staan 20 kolommen in (soms meer soms minder)

Deze kolommen moeten overblijven:
First Name|Middle Name|Last Name|Title|Company|CompanyProfile|CompanyWebsite|Email|Phone|

Het probleem is dat de volgorde van de kolommen wisselt, en het aantal kolommen ook.
De kolommen hierboven staan er altijd in als ik importeer.

Hoe kan ik bovenstaande kolommen behouden, op de volgorde als hierboven en de andere kolommen verwijderen?

Dank!

govi
 
Middels een stukje VBA lukt dat wel.
Kopieer de betreffende kolommen in die volgorde naar een nieuw tabblad en verwijder daarna het bron tabblad.
 
Laatst bewerkt:
@edmoor Dank je!
Ik heb het al uitgewerkt zonder extra blad en met hulp van iemand op het werk:
Code:
Public Sub BehoudSpecKolommen()
Dim arColHeadings
Dim lngHdrRow As Long: lngHdrRow = 1 
Dim lngLastCol As Long
'\\ Wat zijn de kolomkoppen?
arColHeadings = Array("First Name", "Middle Name", "Last Name", "Title", "Company", "CompanyProfile", "CompanyWebsite", "Email", "Phone")
Application.ScreenUpdating = False
'\\ 1: Verwijder kolommen
lngLastCol = Cells(lngHdrRow, Columns.Count).End(xlToLeft).Column
For i = lngLastCol To 1 Step -1
    If Not IsNumeric(Application.Match(Cells(lngHdrRow, i).Value, arColHeadings, 0)) Then
        Cells(lngHdrRow, i).EntireColumn.Delete
    End If
Next i
'\\ 2: Controleer volgorde
lngLastCol = Cells(lngHdrRow, Columns.Count).End(xlToLeft).Column
For i = 1 To lngLastCol
    '\\ No need to move a column if it is already in correct place
    If Cells(lngHdrRow, i).Address <> Cells(lngHdrRow, Application.Match(Cells(lngHdrRow, i).Value, arColHeadings, 0)).Address Then
        Cells(lngHdrRow, i).EntireColumn.Cut
        Cells(lngHdrRow, Application.Match(Cells(lngHdrRow, i).Value, arColHeadings, 0)).EntireColumn.Insert Shift:=xlToRight
    End If
Next i
Application.ScreenUpdating = True
End Sub
 
Als dat zo goed voor je werkt is het prima natuurlijk.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan