DarkValley
Gebruiker
- Lid geworden
- 11 jan 2007
- Berichten
- 59
Beste Vba'ers
Ik probeer zelf de volgorde te bepalen van kopieren van een array naar een nieuw blad. Ik krijg het maar niet voor elkaar.
De code zoekt netjes naar de aangegeven kolommen met de waarde zoals in de Array aangegeven, zo ook de volgorde in declaratie STR is juist. Alleen als dit dan gekopieerd word naar blad "FINAL" neemt hij toch de kolom volgorde over van het origineel. Nu moet ik dus elke keer ervoor zorgen dat de kolommen juist zijn gepositioneerd voordat ik deze code kan gebruiken.
In dit voorbeeld zou in blad "FINAL" dus kolom A, de data van "Menge" moeten bevatten, Kolom B, data van "Pos" en Kolom C, data van "Artikel-Nr"
Zou ik deze array aanpassen naar
dan kolom A, de data van "Artikel-Nr" moeten bevatten, Kolom B, data van "Pos" en Kolom C, data van "Menge" etc.. etc..
Dus ik zoek een manier om via aanpassing "ar" de volgorde te kunnen bepalen en deze volgorde dan over te nemen naar het blad 'FINAL".
Hoop dat iemand mij kan helpen.
Met vriendelijke groet,
DarkValley
Ik probeer zelf de volgorde te bepalen van kopieren van een array naar een nieuw blad. Ik krijg het maar niet voor elkaar.
De code zoekt netjes naar de aangegeven kolommen met de waarde zoals in de Array aangegeven, zo ook de volgorde in declaratie STR is juist. Alleen als dit dan gekopieerd word naar blad "FINAL" neemt hij toch de kolom volgorde over van het origineel. Nu moet ik dus elke keer ervoor zorgen dat de kolommen juist zijn gepositioneerd voordat ik deze code kan gebruiken.
In dit voorbeeld zou in blad "FINAL" dus kolom A, de data van "Menge" moeten bevatten, Kolom B, data van "Pos" en Kolom C, data van "Artikel-Nr"
Zou ik deze array aanpassen naar
Code:
ar = Array("Artikel-Nr", "Pos", "Menge")
Dus ik zoek een manier om via aanpassing "ar" de volgorde te kunnen bepalen en deze volgorde dan over te nemen naar het blad 'FINAL".
Code:
Sub Myarr()
Dim ar As Variant
ar = Array("Menge", "Pos", "Artikel-Nr")
Dim r As Range
Dim i As Integer
Dim fn As Range
Dim str As String
' "ar" wordt bepaald per leverancier
For i = 0 To UBound(ar) 'Loop through the Array
Set fn = ActiveSheet.Cells(1, 1).EntireRow.Find(ar(i), LookAt:=xlWhole)
str = str & fn.Address & ","
Next i
'Take the trailing comma from the string
str = Left(str, Len(str) - 1)
Set r = Range(str).EntireColumn
r.Copy Sheets("FINAL").[A1] 'Copy and Paste to "FINAL" sheet in cell A1
Sheets("FINAL").Activate
End Sub
Hoop dat iemand mij kan helpen.
Met vriendelijke groet,
DarkValley