Avatar billede HHA Guru
03. marts 2022 - 20:22 Der er 6 kommentarer og
1 løsning

Overføre fra et ark til et andet

Hej,

Jeg har en VBA der overfører fra et ark til et andet.
Den ser om der er en værdi i kolonne A på et ark, ws1.
Hvis der er det, så skal den kopiere rækken over i et andet ark, ws2

Det er en prisfil fra en leverandør, som har 10.000 varenumre i kolonne C og har vores varenumre i kolonne A, omkring 150.
Så der er jo en masse linjer der ikke skal med.

Den virker ikke helt, da den overfører hele arket og ikke kun de rækker hvor der er en værdi i kolonne A.

Er der nogen, der kan se hvad der er galt med koden?

Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet
    Dim LR1 As Long, LR2 As Long, Lastrow As Long
   
   
    Set ws1 = Sheets("PajoBolte")
    Set ws2 = Sheets("Ark2")
    ws2.Cells.ClearContents ' Sletter alt i ws2
     
       
    LR1 = ws1.Range("C" & Rows.Count).End(xlUp).Row
       
    Application.ScreenUpdating = False
   
    LR2 = 1
   
    For i = 1 To LR1                                                 
     
       
        If ws1.Range("A" & i).Value > 0 Then                         
       
            ws2.Cells.NumberFormat = "@"                               
            ws2.Cells(LR2, "A").Value = ("")                            '
            ws2.Cells(LR2, "B").Value = ws1.Cells(i, "C").Value        ' Kreditors varenummer
            ws2.Cells(LR2, "C").Value = ws1.Cells(i, "A").Value        ' Værftes varenummer
            ws2.Cells(LR2, "D").Value = ("Stk")                       
            ws2.Cells(LR2, "E").Value = ws1.Cells(i, "G").Value       
            ws2.Cells(LR2, "F").Value = ws1.Cells(i, "I").Value       
            ws2.Cells(LR2, "G").Value = ("DKK")                       
            ws2.Cells(LR2, "H").Value = ws1.Cells(i, "I").Value       
            ws2.Cells(LR2, "I").Value = ("DKK")                       
            ws2.Cells(LR2, "J").Value = ws1.Cells(i, "I").Value       
            ws2.Cells(LR2, "K").Value = ("DKK")                       
            ws2.Cells(LR2, "L").Value = ws1.Cells(i, "I").Value       
            ws2.Cells(LR2, "M").Value = ("DKK")                       
            ws2.Cells(LR2, "N").Value = ws1.Cells(i, "I").Value       
            ws2.Cells(LR2, "O").Value = ("DKK")                       
           
            Worksheets("Ark2").Columns("A:cc").AutoFit
           
            LR2 = LR2 + 1
         
        End If
        Next i
       
        Worksheets("Ark2").Columns("E").NumberFormat = "0.00"
        Worksheets("Ark2").Columns("F").NumberFormat = "0.00"
        Worksheets("Ark2").Columns("H").NumberFormat = "0.00"
        Worksheets("Ark2").Columns("J").NumberFormat = "0.00"
        Worksheets("Ark2").Columns("L").NumberFormat = "0.00"
        Worksheets("Ark2").Columns("N").NumberFormat = "0.00"
       
       
Application.ScreenUpdating = True

MsgBox "Filen er klar!"

End Sub
Avatar billede jens48 Ekspert
03. marts 2022 - 23:15 #1
Den virker fint her, men hvis du har et usynligt mellemrum stående i kolonne A så virker den ikke.

Ret
If ws1.Range("A" & i).Value > 0 Then 
til
If WorksheetFunction.IsNumber(ws1.Range("A" & i).Value) And ws1.Range("A" & i).Value > 0 Then
Avatar billede HHA Guru
04. marts 2022 - 04:22 #2
Så overfører den slet ikke noget...
Meget mystisk.
Avatar billede HHA Guru
04. marts 2022 - 04:34 #3
Men du er inde på noget af det rigtige, for hvis jeg rydder indholdet i nogle af de celler der er i kolonne A i ws1, uden at jeg kan se at der er noget i dem, så bliver de ikke overført.
Avatar billede HHA Guru
04. marts 2022 - 05:37 #4
Kan ikke lige finde hvad der er galt med den fil der er i ws1.
Her er et link til test filen.
Der ligger lidt rod i VBA, som pga. alle de test jeg har lavet :)

http://46.32.50.245:8082/share.cgi?ssid=071s5AB
Avatar billede Jan K Ekspert
04. marts 2022 - 11:39 #5
Prøv med

If ws1.Range("A" & i).Value <> "" Then

Når jeg bruger den, overfører den kun de fire rækker, hvor der faktisk står noget i A.
Avatar billede HHA Guru
06. marts 2022 - 13:13 #6
Tusind tak Jan K.

Det virker fint 👌👍
Avatar billede Jan K Ekspert
06. marts 2022 - 16:07 #7
Velbekomme :-)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Excel-kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester