Avatar billede somaliomar Praktikant
03. oktober 2002 - 11:01 Der er 11 kommentarer og
1 løsning

Finde ens data i en kollonne vha. VBA

Nogle der ved hvordan man i Excel kan finde frem til ens værdier i en kollonne og derefter "merge" de ens værdier sammen til et felt. Jeg tror en VBA-kode kan gøre det, men ved ikke hvordan jeg skal gribe det an. Nogle der kan hjælpe?

Sådan ser arket ud nu:
01    Adobe
02    Adobe
03    Adobe
04    Adobe
05    Adobe
06    Microsoft
07    Microsoft
08    Microsoft
09    Microsoft
10    Microsoft
11    Google
12    Netscape
13    Altavista
14    Altavista
15    Altavista


Sådan vil jeg have at det skal se ud:
01    Adobe
02
03
04
05
06    Microsoft
07
08
09
10
11    Google
12    Netscape
13    Altavista
14
15
Avatar billede janvogt Praktikant
03. oktober 2002 - 11:17 #1
Du kan lave en ny kolonne og indsætte en formel, som kun indsætter navnet, når der dukker et nyt navn op.

Formlen kunne f.eks. se sådan ud: =HVIS(A2<>A1;A2;"")
Den skal selvfølgelig kopieres ned så længe der er data.
Avatar billede somaliomar Praktikant
03. oktober 2002 - 12:33 #2
Jeg ved godt at man kan gøre det på den måde, men problemet er at dataene hentes ind i Excel vha. VBA-kode fra en database. Kunne man ikke konvertere formlen til VBA?
03. oktober 2002 - 12:50 #3
Du kan fyre denne lille makro af efter importen.
Her tror makroen at dine data starter i Sheet1 celle A1 - ret selv på det.

Husk altid at lege på en kopi fil....!

Public Sub RemoveDoubleText()
    Dim rCell As Range
    Dim sText As String
   
    sText = ""
    For Each rCell In Worksheets("Sheet1").Range("A1").CurrentRegion.Columns(2).Cells
        If rCell.Value = sText Then
            rCell.Value = ""
        Else
            sText = rCell.Value
        End If
    Next rCell
End Sub
Avatar billede somaliomar Praktikant
03. oktober 2002 - 14:06 #4
Jeg skal ikke kun have fjernet værdier som forekommer mere end en gang. Det skal også være sådan, at de gentagne værdier splittes til et felt. Sådan noget i retning af

Do While (i = 0)
  If rCell.Value(Feltet_Ovenover) = (Dette_Felt) Then
      Felt(Feltet_Ovenover:Dette_Felt).Merge
  End If
Loop

Er det muligt?
03. oktober 2002 - 17:05 #5
Mener du således ?

01,02,03,04,05  Adobe
06,07,08,09,10  Microsoft
11              Google
12              Netscape
13,14,15        Altavista

Du er velkommen til at sende et LILLE ark, så jeg kan se hvordan du gerne vil have det til at se ud. fd@win-consult.com
Avatar billede somaliomar Praktikant
03. oktober 2002 - 17:21 #6
flemmingdahl >> Sendt
03. oktober 2002 - 23:12 #7
Så skulle den være på plads :-)

Public Sub RemoveDoubleText()
    Dim rCell As Range
    Dim sText As String
    Dim lRow As Long
    Dim lMaxRows As Long
   
    sText = ""
    lMaxRows = ActiveSheet.Range("A1").CurrentRegion.Rows.Count
    For Each rCell In ActiveSheet.Range("A1").CurrentRegion.Columns(2).Cells
        If rCell.Value = sText Then
            With rCell
                .Value = ""
                If .Row = lMaxRows Then
                    MergeCells lRow, .Row, .Column
                End If
            End With
        Else
            With rCell
                If .Row > 2 Then
                    MergeCells lRow, .Row - 1, .Column
                End If
                sText = .Value
                lRow = .Row
            End With
        End If
    Next rCell

    Set rCell = Nothing
End Sub

Private Sub MergeCells(ByRef lStartRow As Long, ByRef lEndRow As Long, ByRef lColumn As Long)
    With ActiveSheet.Range(Cells(lStartRow, lColumn), Cells(lEndRow, lColumn))
        .VerticalAlignment = xlTop
        .MergeCells = True
    End With
End Sub
Avatar billede somaliomar Praktikant
07. oktober 2002 - 08:59 #8
flemmingdahl >> Mange tak for hjælpen.

Lige et spm: Hvordan skal koden se ud, hvis man skal finde ens data i en række og derefter gøre det samme som ovenstående?
07. oktober 2002 - 23:20 #9
Brug Data / Sorter først - så er den vist løst
29. november 2002 - 13:16 #10
somaliomar>> du mangler lige at acceptere mit svar.
Avatar billede somaliomar Praktikant
29. november 2002 - 16:37 #11
Ups... Sorry :)
29. november 2002 - 16:42 #12
helt ok :o)
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