verplaats een rij nav een nummer in een cel

Status
Niet open voor verdere reacties.

mlaurense

Gebruiker
Lid geworden
22 jan 2010
Berichten
11
Goedemiddag.

Ik heb een sheet met gegevens. In de eerste kolom staat voor elke regel een getal. De gegevens uit deze sheet moeten worden gekopieerd naar een andere sheet, maar dan wel op de regel die aangegeven staat met het nummer uit de eerste kolom.

Bijvoorbeeld:
Originele sheet:
. A B
1 1 dfgd
2 3 sdfgsd
3 4 sdfgsdf

doelsheet:
. A B
1 1 dfgd
2
3 3 sdfgsd
4 4 sdfgsdf

Als iemand me met wat code hiermee kan helpen, zou ik erg blij worden. Ben al een poosje aan het stuntelen.
Alvast bedankt.
 
Laatst bewerkt:
mlaurense,

Neem de handelingen eens op met de Macrorecorder.
 
Heb je eraan gedacht de gegevens in het bronbestand te sorteren op de eerste kolom en het resultaat naar het doelbestand te kopiëren ?
 
een methode zou kunnen zijn:

lees de celinhoud van de eerste kolom in in een variabele1, celinhoud van de tweede kolom in variabele2

gebruik nu de waarde van variabele1 om de doelcel te definiëren,
zet variabele1 in doelcel op rij var1, variabele2 in doelcel op rij var1

dus iets in deze zin (geen volledige code):

do while not isempty cells(i,1)
var1 = cells(i,1)
var2 = cells(i,2)
doelblad.cells(var1,1) = var1
doelblad.cells(var1,2) = var2
i = i+1
loop

Pas op: als er dubbelaars in de getallen staan, zal alleen het laatste gekopieerd worden. Om dat te vermijden zal er heel wat meer code aan te pas komen...
loop
 
ik denk dat je zoiets bedoelt

Zat even te kijken maar denk dat dit is wat je bedoelt.


Code:
Dim lngCounter As Long
Dim bytcounter As Byte
Dim arrValues As Variant

With Sheets(1)
    arrValues = .Range("a1:b" & .UsedRange.Rows.Count)
End With

For lngCounter = 1 To UBound(arrValues)
    For bytcounter = 1 To UBound(arrValues, 2)
        With Sheets(2)
            .Cells(arrValues(lngCounter, 1), bytcounter) = arrValues(lngCounter, bytcounter)
        End With
    Next bytcounter
Next lngCounter

Moet ik wel zeggen dat je altijd beter eerst een array kunt vullen ipv een werkblad, en die vervolgens in één keer in het werkblad "plaatsten", dit gaat namelijk 35 x zo snel. Maar ik ben lui en voor het aantal gegevens van je voorbeeld hoef je qua snelheid niet zo op te letten...
 
Dank u allen vriendelijk. Ik heb het spulletje aan de praat. de snelheid is voor mij geen probleem aangezien ik deze code voor maximaal 40 regels nodig heb.

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