• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Cel kopieren naar andere locaties

Status
Niet open voor verdere reacties.

sierranl

Gebruiker
Lid geworden
23 okt 2007
Berichten
7
Hallo, graag jullie hulp:

Ik heb een outputfile vanuit een tool met gebruikersgegevens uit Active Directory dat er als volgt uitziet (staat allemaal in één kolom):

Voorbeeld

Kolom A
desc
Naam gebruiker1
dsget succeeded
CN=test1
CN=test2
CN=test3
desc
Naam gebruiker2
dsget succeeded
CN=test1
CN=test2
CN=test3
CN=test4
desc
Naam gebruiker3
dsget succeeded
CN=test1
CN=test2

Nu wil ik het volgende voor elkaar krijgen:

De waarde van de cel <naam gebruikerx> telkens kopieren in een kolom voor CN=xx (het aantal varieert dus per gebruiker). Helemaal mooi zou zijn als na het kopieren


Gewenste situatie
Kolom A Kolom B
Naam gebruiker1 CN=test1
Naam gebruiker1 CN=test2
Naam gebruiker1 CN=test3
Naam gebruiker2 CN=test1
Naam gebruiker2 CN=test2
Naam gebruiker2 CN=test3
Naam gebruiker2 CN=test4
Naam gebruiker3 CN=test1
Naam gebruiker3 CN=test2

Is hiervoor een macro mogelijk?
 
Code:
Sub layoutveranderen()

    Dim i As Long
    Dim l As Long
    Dim lRij As Long
    Dim sName As String
    
    Const sCN As String = "CN="
    Const sDesc As String = "desc"
    
    l = 1
    
    Do While l <= Range("A" & Rows.Count).End(xlUp).Row
        i = 0
        If Range("A" & l).Value = sDesc Then
            
            sName = Range("A" & l + 1).Value
            
            Do
                i = i + 1
                
                If Left$(Range("A" & l + i).Value, Len(sCN)) = sCN Then
                
                    'output
                    lRij = lRij + 1
                    Range("H" & lRij).Value = sName
                    Range("I" & lRij).Value = Range("A" & l + i).Value
                End If
            
            Loop Until Range("A" & l + i).Value = sDesc Or l + i > Range("A" & Rows.Count).End(xlUp).Row
        End If
        
    l = l + i
    Loop
    
End Sub

Wigi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan