Avatar billede Brugforhjaelp Nybegynder
01. juni 2011 - 10:54 Der er 3 kommentarer

hjælp til excel fil - kontaktpersoner skal stå i samme række og ikke i f.eks. 3 rækker!

Vi skal sende et brev ud, hvor jeg beder vores kunder validere vores kontaktoplysninger på de medarbejdere vi har registreret. Jeg vil kun sende et brev til hver virksomhed og brevfletter med én excel fil i word. Men i den excel fil jeg har, er der en ny post/række hver gang, vi har registreret en ny medarbejder.

F.eks.

Sådan ser min excel fil ud pt.

Virksomhedsnr.    Virksomhed    Navn
15882    Hansen A/S    Bo Nielsen
15882    Hansen A/S    Niels Ib
15882    Hansen A/S    K.Jensen

       
Sådan vil jeg gerne have min excel fil til at se ud.

Kontaktnr. Virksomhed    Navn        Navn2    Navn3   
15882      Hansen A/S    Bo Nielsen  Niels Ib    K. Jensen


Er der nogle der kan hjælpe?? Der er ca. 15.000 rækker i listen, så jeg vil helst ikke skulle gøre det manuelt.
Kontaktdata nummeret er unikt for hver virksomhed, og jeg tænker at det måske kan bruges på en eller anden måde.
01. juni 2011 - 11:06 #1
Der skal skrives en snut VBA kode - ikke noget der tager lang tid.
Smid mig en mail, hvis du ikke kan få løst opgaven for point.
Avatar billede supertekst Ekspert
01. juni 2011 - 14:16 #2
Forslag (havde noget tilsvarende fra tidl. spørgsmål)
Koden indsættes under relevante ark - udføres v/Alt+F8 - afspil makro fraRækkerTilKolonner

Dim antalRækker As Long, ptNr, ptVirk As String, ptNavn As String, nr
Dim ræk As Long, nyRæk As Long, antalNavne As Long, maxAntal
Public Sub fraRækkerTilKolonne()
    antalRækker = ActiveCell.SpecialCells(xlLastCell).Row
    nyRæk = 2
    maxAntal = 1
    antalNavne = 0

    Application.ScreenUpdating = False
    For ræk = 2 To antalRækker
        hentData
       
        If ræk = 2 Then
            nyeData
        Else
            If ptNr = nr Then
                Range("G" & nyRæk).Offset(0, antalNavne) = ptNavn
                antalNavne = antalNavne + 1
                If antalNavne > maxAntal Then
                    maxAntal = antalNavne
                End If
            Else
                nyRæk = nyRæk + 1
                nyeData
            End If
        End If
    Next ræk
   
Rem Opsætning af Navn2....NavX
    opsætOverskrifter maxAntal - 1
   
    Columns.AutoFit
    ScreenUpdating = True
End Sub
Private Sub hentData()
    ptNr = Range("A" & ræk)
    ptVirk = Range("B" & ræk)
    ptNavn = Range("C" & ræk)
End Sub
Private Sub nyeData()
    nr = ptNr
   
    Range("E" & nyRæk) = ptNr
    Range("F" & nyRæk) = ptVirk
    Range("G" & nyRæk) = ptNavn
    antalNavne = 1
End Sub
Private Sub opsætOverskrifter(antal)
Dim kol
    If antal > 1 Then
        For kol = 1 To antal
            Range("G1").Offset(0, kol) = "Navn" & CStr(kol + 1)
        Next kol
    End If
End Sub
Avatar billede Brugforhjaelp Nybegynder
16. juni 2011 - 09:34 #3
Tak for jeres hjælp - vil få en kollega til at forsøge sig med det sidstnævnte..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester