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

code blijft doordraaien en stopt niet

Status
Niet open voor verdere reacties.
finch


op testbestand ziet het er goed uit;

nu op copy bestand maar start op rij 5

dus code aanpassen :
Code:
For iRow = 2 To ActiveSheet.UsedRange.Rows.Count Step 8

naar

Code:
For iRow = 5 To ActiveSheet.UsedRange.Rows.Count Step 8


of zie ik dit fout ???
 
finch


op testbestand ziet het er goed uit;

nu op copy bestand maar start op rij 5

dus code aanpassen :
Code:
For iRow = 2 To ActiveSheet.UsedRange.Rows.Count Step 8

naar

Code:
For iRow = 5 To ActiveSheet.UsedRange.Rows.Count Step 8


of zie ik dit fout ???

yup. Dat zou moeten lukken dan.

Maar niet vergeten een backup te nemen van de originele data hé :)
 
krijg toch terug een foutmelding.

Kan het zijn omdat in het vb dat ik meestuurde alle vakjes gevuld waren
en in het origineel niet ( reden : niet allenummers zijn gekend)

en hoe dan overslaan om de code tech te laten lopen

foutmelding "
Code:
 ActiveSheet.Cells(iRow + iColDif, iCol) = ActiveSheet.Cells(iRow, iCol + iColDif)

we waren er bijna !!
 
Grema, Finch, Sorry dat ik me er zo 'tussen dring'...:o Maar wellicht hebben jullie iets aan deze procedure (heb ik gemaakt aan de hand van je eerste bijlage!)
Code:
Sub GremaTranspose()
Dim i           As Long
Dim iKolom      As Integer
Dim iCopyLengte As Integer

    iKolom = 2 [COLOR="Blue"]'geef hier het nummer van de 1e kolom[/COLOR]
    iCopyLengte = 6 [COLOR="blue"]'geef hier het aantal cellen dat gekopieerd moet worden[/COLOR]
    
    Application.ScreenUpdating = False
    
    For i = 2 To 2647 Step 7
        Cells(i, iKolom).Resize(, iCopyLengte).Copy
        Cells(i + 1, iKolom - 1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=True
    Next i
    
    Application.ScreenUpdating = True
    
    MsgBox "Klaar...", vbOKOnly, "OK"

End Sub
Zelf nog ff de startkolom correct inzetten en de start van de lus eventueel ook aanpassen als deze niet op regel 2 moet beginnen maar op een andere...

Groet, Leo

P.s. De orginele code 'SemiTranspose' was trouwens van mij afkomstig...:):rolleyes:
 
Laatst bewerkt:
Finch, Leo en andere mededenkers

Fijn dat jullie weer hielpen .:thumb:

Leo , Probeer jou code ook nog even .:D

En laat iets weten.

(ps: Als er na al m'n gevraag nog even iemand de tijd wil nemen om deze laatste code even te verduidelijken ) ((Kan ik hem in volgende probeersels van me misschien ook toepassen. Vb hoe beperk je het aantal kolommen naar rechts ; die dan onder elkaar kwamen te staan.

tot zo
 
Grema,
hoe beperk je het aantal kolommen naar rechts
Dat heb ik in dit geval gedaan met de Property (eigenschap) 'Resize(rij, kolom)' van het object Cells. Bij de Cells geef je aan waar er gestart moet worden. In de Resize kan je vervolgens op dezelfde methode aangeven hoeveel rijen of kolommen het bereik vergroot moet worden. Daarna wordt er van dat vergrootte bereik een copy gemaakt.

De volgende stap in de lus geeft in Cells de opdracht om 1 rij naar onder te gaan (i + 1) en 1 kolom naar links (iKolom - 1). Dit had uiteraard óók met offset gedaan kunnen worden, maar het is de sport om zo kort mogelijk te programmeren. ;) Deze rare stap is nodig omdat je steeds die 1e cel van je regel weer mee wilt laten doen in je (nieuwe) kolom.

Groet, Leo
 
krijg toch terug een foutmelding.

Kan het zijn omdat in het vb dat ik meestuurde alle vakjes gevuld waren
en in het origineel niet ( reden : niet allenummers zijn gekend)

en hoe dan overslaan om de code tech te laten lopen

foutmelding "
Code:
 ActiveSheet.Cells(iRow + iColDif, iCol) = ActiveSheet.Cells(iRow, iCol + iColDif)

we waren er bijna !!

dat vind ik raar, en lege velden mogen geen probleem vormen. Ben je zeker dat er geen andere verschillen zitten tussen je testbestand en origineel bestand?
 
code draait

foutmelding gekregen . Maart toch alles op juiste plaats.

Kijk dit stukje dit we verder na.

Heb nu nog 2 vraagjes :

a) wil een copy van gegevens :
voor rij 1039 kolom E F G H I J tot rij 1046 ( string 7 OF 8 )
en dan voor rest van pagina.

Dus weer een loop of zoiets.


b) daarna dienen RIJen 8 9 10
string 8 ??
verwijderd te worden tot einde blad .
 
Ken je hier ook de codes voor ??


alvast dank voor de" MEGA - SUPER - DELUSE HULP " :thumb::D


grema
 
Beste Grema,

ik ben wel bereid van wat te helpen, maar je zal je vragen toch duidelijker moeten stellen vrees ik. Want ik heb weer geen concreet idee wat je bedoelt. Liefst een representatief voorbeeld in Excel, en een beschrijving van wat je wilt bereiken.

Aangezien jij constant in die materie zit, neem ik aan dat het voor jou duidelijk is. Maar een buitenstaander heeft er niet zo dadelijk zicht op.
 
finch,

Code:
Aangezien jij constant in die materie zit, neem ik aan dat het voor jou duidelijk is.

tracht iets bij te leren . ( regelmatig op site help-mij)
nog lang geen specialist hoor . !!!


in bijlage het vb
 

Bijlagen

finch,

Code:
Aangezien jij constant in die materie zit, neem ik aan dat het voor jou duidelijk is.

tracht iets bij te leren . ( regelmatig op site help-mij)
nog lang geen specialist hoor . !!!


in bijlage het vb

Je wilt dus de gele rijen verwijderen. Zijn die in het echte bestand ook geel gekleurd? Of zit daar steeds 8 rijen tussen (rij 5,13,21,...)? Maw hoe kunnen we achterhalen (op een unieke en eenduidige manier) welke rijen verwijdert mogen worden.
 
Code:
Of zit daar steeds 8 rijen tussen (rij 5,13,21,...

zelfde aantal rijen;

Geen gele vlakken ( dit was om even aan te geven )
Dit wat betreft verwijderen.

1ste probleem : copy van de cels

liefst in 2 macros dwz eerst copieren
dan 2de macro verijderen rijen
 
1ste probleem : copy van de cels

is dat het stukje code waar we gisteren mee gewerkt hebben?
Vogens mij kan dat daar ook voor dienen.
gewoon

icol op 5 zetten
en icoldif laten gaan van 1 tot 6
 
neen ;

de code van gisteren plaatste alles mooi onder elkaar.
ttz : daar plaatste de code
kolom f onder e
g e
h e
i e
j e


nu wens ik een kopy van kolom e/f/g/h/i /j voor rij in vb rij 2
naar rij 3 tot 9


en daarna idem voor de volgende rijen ( dus vandaar weer die step )
 
neen ;

de code van gisteren plaatste alles mooi onder elkaar.
ttz : daar plaatste de code
kolom f onder e
g e
h e
i e
j e


nu wens ik een kopy van kolom e/f/g/h/i /j voor rij in vb rij 2
naar rij 3 tot 9


en daarna idem voor de volgende rijen ( dus vandaar weer die step )

sorry hoor, maar als ik dat zo lees is er toch geen verschil tussen beide benaderingen. Ik vrees dat ik nog steeds niet mee ben.
 
Grema,

hieronder de code om je gegevens te copieren. Test ze eens en laat weten of het werkt, dan pas gaan we over naar stap 2.

Code:
[FONT="Courier New"]Sub CopyGegevens()

Dim StartRij As Long
Dim RijVerschil As Long
Dim lngRow As Long
Dim BeginCopyKolom As Long
Dim EindeCopyKolom As Long

StartRij = 2 'dit is de beginrij vanwaar de code moet lopen
RijVerschil = 8 'dit is om de hoeveel rijen de code dient uitgevoerd te worden

BeginCopyKolom = 5 'dit is het kolomnummer waar we beginnen met copieren dus 5 voor E
EindeCopyKolom = 10 'dit is het kolomnummer waar we eindigen met copieren dus 10 voor J
'alle kolommen tussen begin en einde worden gecopieerd.

For lngRow = StartRij To ActiveSheet.UsedRange.Rows.Count Step RijVerschil
    Range(Cells(lngRow, BeginCopyKolom), Cells(lngRow, EindeCopyKolom)).Copy Range(Cells(lngRow + 1, BeginCopyKolom), Cells(lngRow + RijVerschil - 1, EindeCopyKolom))
    Application.CutCopyMode = False
Next lngRow[/FONT]

End Sub

Je kan eventueel de waarden van de 4 variabelen (StartRij,RijVerschil, BeginCopyKolom, EindeCopyKolom) een waarde geven die nodig zijn in jouw bestand.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan