• 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.

hoe voeg je cellen samen als er wordt voldaan aan iets

Status
Niet open voor verdere reacties.

gaggie

Gebruiker
Lid geworden
13 apr 2012
Berichten
101
In de bijlage een voorbeeld.

Het nummer in kolom A als dat meedere keren voorkomt in kolom a dan moet de waarde in cel b in cel c worden gezet, mocht het nummer in kolom A meerdere keren bestaan dan moet de waarde uit cel b toegevoegd worden aan die cel c.

Weet iemand een oplossing.

M.vg.
Gaggie
Bekijk bijlage cellen samenvoegen.xls
 
Run onderstaande code eens.
Code:
Sub hsv()
Dim i As Long, sq, c, firstaddress
  With Sheets("Blad1")
     sq = .Range("A1:A" & .Cells(Rows.Count, 1).End(xlUp).Row)
      For i = 1 To UBound(sq)
    Set c = .Columns(1).Find(sq(i, 1), , xlValues, xlWhole)
     firstaddress = c.Address
        Do
          c.Offset(, 2) = c.Offset(, 2) & " " & Cells(i, 2)
            Set c = .Columns(1).FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstaddress
  Next
End With
End Sub
 
Hallo Harry,
Deze code werkt, helemaal super.
Begrijp de code nog niet.

Met vr.gr.

Gaggie
 
Hallo Harry,

Nog 1 vraagje over bovenstaand.

Stel dat de range niet in a1:a staat maar in f1:f

en de kolom waar alles samengevoegd moeten worden is P

Wat zou ik dan moeten aanpassen.

Bij voorbaat dank.

Guido
 
Als de gegevens die samengevoegd moeten worden nog in kolom B staan, anders de rode 2 veranderen in kolomnummer waar de gegevens staan.

Run onderstaande code eens.
Code:
Sub hsv()
Dim i As Long, sq, c, firstaddress
  With Sheets("Blad1")
     sq = .Range("[COLOR="#FF0000"]F[/COLOR][COLOR="#FF0000"]1:F[/COLOR]" & .Cells(Rows.Count, [COLOR="#FF0000"]6[/COLOR]).End(xlUp).Row)
      For i = 1 To UBound(sq)
    Set c = .Columns([COLOR="#FF0000"]6[/COLOR]).Find(sq(i, 1), , xlValues, xlWhole)
     firstaddress = c.Address
        Do
          c.Offset(, [COLOR="#FF0000"]10[/COLOR]) = c.Offset(, [COLOR="#FF0000"]10[/COLOR]) & " " & Cells(i, [COLOR="#FF0000"]2[/COLOR])
            Set c = .Columns([COLOR="#FF0000"]6[/COLOR]).FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstaddress
  Next
End With
End Sub
 
Laatst bewerkt:
Harry,

bij sq f1:f daar is rows.count, 6 de zesde column dus F
bij set c= columns(6) zal dus ook column f zijn.

c.offset(, 10) is 10 gerekend vanaf F of reken je dan vanaf de eerstvolgende dus G
cells(i, 2) dat is neem ik aan de tweede column vanaf F gerekend dus G
die set c aan het einde is om de column weer op F te zetten.

Klopt dit een beetje, want dan zet ik er wat commentaar bij dan vergeet ik dat niet.

waar regel je in welke column je het samenvoegen wil neerzetten?

Vast bedankt.

Guido
 
Laatst bewerkt:
c = kolom 6
c.offset(,10) is dus gerekend vanaf kolom 6 (Kolom F) = 6 + 10 = 16 = kolom P.
cells(i, 2) = kolom B
Set c = .columns(6).findnext(c) → om de volgende c (sq(i, 1)) te vinden in kolom 6.
 
Graag gedaan,

Gelieve dan de vraag als opgelost te zetten in je eerste post.
Bvd.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan