VBA - Flytte data fra et ark til et andet i excel via. en userform
Hej!
Jeg sidder og knokler med en opgave i VBA. Jeg har lavet en userform, hvor man ud fra en liste kan vælge en leverandør og hvilken data man gerne vil have kopieret over i et andet ark. Userformen og kontrol elementerne er lavet og virker. Jeg kan bare ikke få VBA (via. userformen) til at løbe listen med leverandører (i ark 1) i gennem og kopier den valgte leverandør alle de gange den er nævnt (+ de tilhørende data) over i ?ark 2?.
Det er blevet gjort følgende: Worksheets("Ark1").Activate Range(C1).Activate xcell = 1
Do
Do While ActiveCell.Value = lstleverandører.Text Or ActiveCell(1, 0) = "" If ActiveCell.Text = "lstleverandører" Then Selection.EntireRow.Copy Sheets("Ark2").Select Range("A2").Activate If Range("A2") = "" Then Range("A2").Select ActiveSheet.Paste Else Range("C2").End(xlDown).Offset(1, 0).Activate End If End If Exit Do Worksheets("Ark1").Activate Range("C1").End(xlDown).Offset(1, 0).Activate
Loop
Loop Until ActiveCell.Value = ""
Den meddeler fejl... Kan I se hvor der er fejl i koden? Eller har I en måde hvorpå det er nemmere?
jeg er ikke helt sikker på hvad du mener, men prøv
Dim I As Long, Lev As String I = 1
Do Lev = Worksheets("Ark1").Range("C" & I).Text If Lev = lstleverandører.Text Then If Sheets("Ark2").Range("C2") = "" Then Worksheets("Ark1").Range("C" & I).EntireRow.Copy (Sheets("Ark2").Range("A2")) Else Worksheets("Ark1").Range("C" & I).EntireRow.Copy (Sheets("Ark2").Range("C2").End(xlDown).Offset(1, -2))
End If End If
I = I + 1 Loop Until Worksheets("Ark1").Range("C" & I) = ""
Den siger at der er fejl her (efter else): Worksheets("Ark1").Range("C" & I).EntireRow.Copy (Sheets("Ark2").Range("C2").End(xlDown).Offset(1, -2))
Den siger der er tale om en "error 1004 application-defined or object-defined" Ved bare ikke helt hvordan jeg løser det?
Indtil nu viser den "kun" leverandøren 1 gang i ark 2 Hvis leverandøren nu er nævnt 10 gange i ark 1, ville jeg gerne at alle 10 gange bliver kopieret over i ark2.
Skal jeg tilføje noget til koden for at det kan lade sig gøre?
Denne skulle gøre det, hvis du ikke har over 22000 poster, ellers retter du, der hvor der står "C22000"
Dim I As Long, Lev As String I = 1
Do Lev = Worksheets("Ark1").Range("C" & I).Text If Lev = lstleverandører.Text Then Worksheets("Ark1").Range("C" & I).EntireRow.Copy (Sheets("Ark2").Range("C22000").End(xlUp).Offset(1, -2)) End If
I = I + 1 Loop Until Worksheets("Ark1").Range("C" & I) = ""
Ud fra de data, som jeg har overført til ark 2 skal jeg tegne et diagram... Er det nemmest at gøre ved at indspille en makro, eller har du en god metode til at gøre det?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.