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

data pdf tabel naar excel werkblad

Status
Niet open voor verdere reacties.

nonono

Gebruiker
Lid geworden
28 jan 2009
Berichten
289
Ik heb vanuit een pdf document een tabel ge�mporteerd in excel. Dan blijkt, dat de data uit een rij van de pdf tabel, in een kolom in excel onder elkaar geplaatst worden.
Ik zou wille, dat de data naast elkaar in een rij geplaatst worden en waarbij de tussenliggende lege regels verwijderd worden.

Bijv.:

Code:
..    A    B    C    D    E
9                    
10                    
11    a1                
12    b1                
13    c1                
14    d1                
15    e1                
16    
17    a2
18    b2
19    etc.

naar:

Code:
..    A    B    C    D    E
9                    
10                    
11    a1    b1    c1    d1    e1
12    a2    b2            
13

Is hiervoor een eenvoudige VBA code?

Alvast bedankt Nono
 
Waarschijnlijk is dit wel op te lossen. Is de lege regel altijd het punt dat er met een nieuwe regel begonnen moet worden? Indien ja kun je eenvoudig de getallen naar rechts invullen en naar een nieuwe regel springen bij een lege regel.

Het probleem is meestal wanneer er een lege waarde is in de tabel waarop de code fout kan reageren. Is de data echt consequent?
 
Mijn idee is:
- selecteer data b1 … e1
- klik lege veld naast a1 en kopieer data naar kolom B … E
- en verwijder lege regels b1 …e1

Een eventueel leeg veld in b1 … e1 kan ik opvullen met een 0 om fouten te voorkomen.
Hoe ziet dan de code er uit?

Groet Nono
 
Probeer de volgende code. Volgens mij is dit wat je wilt. Selecteer de geimporteerde tabel en run de macro. De gegevens worden nu naar A1 en verder gestuurd. de code wist nog niets, maar dat is een enkele simpele aanpassing

Code:
    'selecteer de range die je wil verplaatsen
    startx = 1
    starty = 1
    x = startx
    y = starty
    
    For Each celletje In Selection
        If celletje.Value <> "" Then
            ActiveSheet.Cells(y, x).Value = celletje.Value
            x = x + 1
        Else
            y = y + 1
            x = startx
        End If
    Next celletje
 
Dit gaat inderdaad goed en en ik heb gezien, dat bij een lege regel de volgende data op de volgende regel komen.
De “oude" regels zijn niet verwijderd.

tabel:
Code:
a1
b1
c1
d1
e1

a2
b2
c3

a3
b3

resultaat:
Code:
a1	b1	c1	d1	e1
a2	b2	c3		
a3	b3			
	
				
				
				
				
a1				
b1				
c1				
d1				
e1				

a2				
b2				
c3				

a3				
b3

Nu moeten inderdaad nog de “oude” regels gewist worden.
Hoe pas ik de macro aan om op regel A5 te laten beginnen?

Bedankt voor je snelle reactie, Nono
 
Code:
    'selecteer de range die je wil verplaatsen
    startx = 1
    starty = 5
    x = startx
    y = starty
    
    For Each celletje In Selection
        If celletje.Value <> "" Then
            ActiveSheet.Cells(y, x).Value = celletje.Value
            celletje.Value = ""
            x = x + 1
        Else
            y = y + 1
            x = startx
        End If
    Next celletje
 
Het werkt prima zo!

Bedankt Nono :thumb: :thumb: :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan