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

gevens uit verschillende kolommen, samenvoegen in een andere kolom

Status
Niet open voor verdere reacties.

Havana100

Verenigingslid
Lid geworden
22 jul 2014
Berichten
309
beste,

Weet er soms iemand een oplossing voor volgend probleem?

Zie bijlage. In zowel kolom A, D G en I ( geel) staan gegevens. Deze gegevens zou ik graag samenvoegen in kolom O. (groen)

het aantallen rijen de kolommen A, D, G en I zijn niet standaard dus er kunnen steeds gegevens bijgevoegd worden. Momenteel is het aantal rijen ongeveer een 3.000.

beste groeten!
 

Bijlagen

Hoe kom je tot het resultaat in de groene kolom? Graag een toelichting voor een aantal rijen.
 
AlecCEL,

in de groene kolom zouden de waarden uit kolom A moeten komen, dus vanaf cel A2 tot einde, indien er lege cellen aanwezig zijn, bijvoorbeeld cel A9, dan deze niet weergeven in groene kolom. Nadat alle gegevens uit kolom A aanwezig zijn, zouden de gegevens uit kolom D moeten komen, dus ook geen lege cellen. nadat alle gegevens uit kolom B in de groene kolom staan, dus opeenvolgend aan de gegevens van kolom A, dan de gegevens uit kolom G en daarop volgend de gegevens uit kolom J.
Het totaal aanwezige rijen kan ik wel aangeven maar dus niet alle rijen bevatten gegevens. Het totaal aantal rijen is momenteel 3.000.
Hopelijk een beetje duidelijker?
 
De lege cellen zijn niet leeg. Met een macro.
Voor de unieke waarden
Code:
Sub VenA()
  ar = Sheets("Blad1").Cells(1).CurrentRegion
  Set d = CreateObject("Scripting.Dictionary")
  For jj = 1 To UBound(ar, 2) Step 3
    For j = 2 To UBound(ar)
      If ar(j, jj) <> "" Then d("'" & (ar(j, jj))) = ""
    Next j
  Next jj
  Sheets("Blad1").Cells(2, 17).Resize(d.Count) = Application.Transpose(d.keys)
End Sub

Of alles
Code:
Sub VenA1()
  ar = Sheets("Blad1").Cells(1).CurrentRegion
  ReDim ar1(0)
  For jj = 1 To UBound(ar, 2) Step 3
    For j = 2 To UBound(ar)
      If ar(j, jj) <> "" Then
        ar1(UBound(ar1)) = "'" & ar(j, jj)
        ReDim Preserve ar1(UBound(ar1) + 1)
       End If
    Next j
  Next jj
  Sheets("Blad1").Cells(2, 17).Resize(UBound(ar1) + 1) = Application.Transpose(ar1)
End Sub
 
VenA,

sowieso bedankt hoor! Maar had niet zo direct een macro verwacht. Ik heb ook niet vermeld dat het over twee verschillende excel files gaat. De gegevens staan in een andere excel file (naam : gegevens)staat ook in een andere directory (bijvoorbeeld C:\Algemeen) en het resultaat zou moeten komen in een andere file ( bijvoorbeeld C:\Resultaaat) . Het bestand ( hier voorbeeld genoemd) staat dus in de map resultaat en de file met gegevens in een andere excel file.

Mijn macro kennis is absoluut miniem hoor ! maar ik veronderstel dat eerst de file gegevens moet geopend worden?

In het voorbeeld heb ik de gegevens in bepaalde kolommen geplaatst. In werkelijkheid zitten deze niet in exact dezelfde kolommen als in het voorbeeld.

Klopt het dat step 3, betekend dat de macro telkens 3 kolommen verder moet gaan kijken? Wat als het aantal kolommen niet altijd gelijk is aan 3 maar bijvoorbeeld tussen de eerste kolom en de tweede 11 en tussen de tweede en de derde 9 enz...

ik heb de macro in het voorbeeld geplaatst. Echter in cel Q9 krijg ik een lege cel en de laatste van de gegevens (541448820055905181) in kolom J komt niet in het resultaat.
 

Bijlagen

Zoals geschreven zijn de lege cellen niet leeg. Althans niet alle. De code die je gebruikt hebt haalt de unieke waarden op en daarom zie je 541448820055905181 maar 1 keer. Deze waarde staat in D5 en J12. Als je geen representatief voorbeeld plaatst dan wordt het een beetje lastig om er iets voor te verzinnen. Al kan je het handmatig ook redelijk snel voor elkaar krijgen. 4 x kopiëren en onder elkaar plakken en vervolgen de 'lege' cellen verwijderen. Cellen met een spatie erin lijken leeg maar dat zijn ze niet.
 
dit is een meer eenvoudige oplossing
Open beide bestanden en controleer de namen van de bestanden en pas ze desnoods aan.
 

Bijlagen

Emields,

bedankt hoor, werkt prima en voor mij iets makkelijker, sorry voor het late antwoord maar was eventjes ....weg
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan