Avatar billede -wolf- Nybegynder
08. juli 2010 - 12:23 Der er 5 kommentarer og
1 løsning

Samle tekst fra flere linie i et ark, til et felt i andet ark

Hej

Jeg skal have flettet tekst(beskrivelse) af et produkt fra flere linier i et regneark (Ark1) til en celle med linieskift i et andet regneark(Ark2).

Eksempel:


Ark1
          A              B
1        Varenr.    Varebeskrivelse
2        1              Længde: x
3        1              Højde: y
4        1              Vægt: 6
5
6        3              Vægt: 88
7
8        2              Størelse: M
9        2              Farve: Rød
10


Ark2
          A              B
1        Varenr.    Varebeskrivelse
2        1              Længde: x
                          Højde: y
                          Vægt: 6
3        3              Vægt: 88
4        2              Størelse: M
                          Farve: Rød
5


Håber der er nogle kloge hoveder der kan hjælpe
Avatar billede supertekst Ekspert
08. juli 2010 - 12:55 #1
Forestiller du dig en makro?

Er der en større mangde, der skal behandles og hvordan er disse evt. organiseret?

Er ark2 klargjort på forhånd?
Avatar billede -wolf- Nybegynder
08. juli 2010 - 13:20 #2
Det kunne være en macro eller noget VBA, er ikke nogen haj til Excel, så ved ikke helt hvad mulighederne er.

Ja, det er ca. 1800 varenumre det drejer sig om, med 0-20 liniers tekst til hver.

Ark 2 er klargjort, der er oprettet en linje pr. varenr. og varenavn osv. er flyttet over, så der mangler kun varebeskrivelsen.
Avatar billede supertekst Ekspert
08. juli 2010 - 13:35 #3
Hvis muligt er du velkommen til at sende filen eller repræsentivt uddrag - så vil jeg godt se på det..

@-adr. under profil.
Avatar billede -wolf- Nybegynder
08. juli 2010 - 13:55 #4
Jeg har sendt en fil med et lille eksempel på hvad det er jeg mener.
Avatar billede supertekst Ekspert
08. juli 2010 - 17:22 #5
Dim ark1 As Worksheet

Dim varenr As Long, antalRækker, række As String, beskrivelse As String, r As Long, rækArk1 As Long
Public Sub samlingAfBeskrivelse()
    Application.ScreenUpdating = False
   
    antalRækker = ActiveCell.SpecialCells(xlLastCell).Row
    Set ark1 = ActiveWorkbook.Sheets(1)
   
    For ræk = 2 To antalRækker
        række = ræk
        If Range("A" & række) <> "" Then
            varenr = Range("A" & række)
            rækArk1 = findVareNr(varenr)
           
            If rækArk1 > 0 Then
                beskrivelse = ""
                For r = rækArk1 To 65000
                    While ark1.Range("C" & CStr(r)) = varenr
                        beskrivelse = beskrivelse & ark1.Range("F" & CStr(r)) & vbLf
                        r = r + 1
                    Wend
                    Exit For
                Next r
                   
Rem Sidste linieskift fjernes
                If beskrivelse <> "" Then
                    beskrivelse = Left(beskrivelse, Len(beskrivelse) - 1)
                    Range("D" & række) = beskrivelse
                End If
            End If
        End If
    Next ræk
   
    ActiveSheet.Columns.AutoFit
    ActiveSheet.Rows.AutoFit
   
    Application.ScreenUpdating = True
    MsgBox ("Samling udført")
End Sub
Private Function findVareNr(varenr)
    With ark1.Range("C:C")
        Set c = .Find(varenr, LookIn:=xlValues, LookAt:=xlWhole)
        If Not c Is Nothing Then
            findVareNr = c.Row
        Else
            findVareNr = 0
        End If
    End With
    Exit Function
End Function
Avatar billede -wolf- Nybegynder
08. juli 2010 - 18:19 #6
Super, tusind tak for hjælpen.
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