Avatar billede Loppen58 Nybegynder
20. juli 2011 - 11:49 Der er 8 kommentarer og
1 løsning

Flytte info fra et ark til et andet

Hej,
Jeg har et ark på ca. 10.000 linier, hvor jeg kun skal bruge 3 informationer i et nyt ark. Den ene celle, der skal flyttes over, ligger altid til højre for en celle, der hedder Varenavn.
De to øvrige ligger lige under celler, der hedder henholdsvis Indkøb og Salg.
Kan nogen hjælpe her??
Avatar billede supertekst Ekspert
20. juli 2011 - 13:25 #1
Prøv at vis et eksempel..
Avatar billede Loppen58 Nybegynder
20. juli 2011 - 13:52 #2
Jeg har et udtræk fra Axapta, som indeholder en stor mængde oplysning om hver vare - det, jeg skal skille ud er kun Varenavn, Indkøb og Salg for ca. 200 ud af 400 varer og dem jeg skal have over på et andet ark. Jeg har kun arbejdet med simple macroer, som jeg uden held har forsøgt at "sætte sammen" til noget der kan bruges. Uanset hvad jeg forsøger kommer der fejl - og jeg kender helt klart ikke nok til programmeringen af macroer til at klare denne opgave - derfor håber jeg at der er hjerne at hente derude :-)
Avatar billede supertekst Ekspert
20. juli 2011 - 13:57 #3
Er det noget du kan sende? Ellers et uddrag heraf - så skal jeg nok prøve..

@-adresse under min profil.
Avatar billede supertekst Ekspert
20. juli 2011 - 18:00 #4
Rem VBA kode anbringes under relevante ark
Rem ======================================
Dim antalRæk As Long
Dim ræk As Long, vareNavn As String, indkøb As Double, salg As Double
Const fraArkNavn = "Ark1"                          '<-- evt. tilpasses

Dim arkUdtræk As Worksheet
Dim ræk2 As Long
Const tilArkNavn = "Ark2"                          '<-- evt. tilpasses
Public Sub UdtrækVareData()
Rem Beregn antal rækker på ark1
    ActiveWorkbook.Sheets(fraArkNavn).Activate
    antalRæk = ActiveCell.SpecialCells(xlLastCell).Row
   
    Set arkUdtræk = ActiveWorkbook.Sheets(tilArkNavn)
    ræk2 = 2
   
    Application.ScreenUpdating = False
   
    For ræk = 1 To antalRæk
        With Range("C" & ræk)
            If .Text = "Varenavn" Then
                vareNavn = .Offset(0, 1)
                indkøb = .Offset(2, -1)
                salg = .Offset(2, 1)
           
                With arkUdtræk
                    .Range("A" & ræk2) = vareNavn
                    .Range("B" & ræk2) = indkøb
                    .Range("C" & ræk2) = salg
                   
                    ræk2 = ræk2 + 1
                End With
            End If
        End With
    Next ræk
   
    arkUdtræk.Activate
    Columns.AutoFit
   
    Application.ScreenUpdating = True
End Sub
Avatar billede Loppen58 Nybegynder
21. juli 2011 - 09:25 #5
Tak for tilsendte - der kommer en fejlmelding, som hedder "Type mismatch" efter de første 15 linier. Kan det skyldes, at den støder på en række vine, hvor varenavnet starter med årgangen, altså med tal i stedet for bogstaver?
Avatar billede supertekst Ekspert
21. juli 2011 - 09:37 #6
Selv tak.

Hvis der er mulighed for at trykke Debug - kan du så ikke se, hvor problemet opstår (den gule markering). Evt sende en særmprint eller identificere hvilken linje der er tale om.

Tror ikke det er "tal-vinen".
Avatar billede supertekst Ekspert
21. juli 2011 - 09:57 #7
Prøv evt. at ændre følgende i begundelsen af koden: 
  indkøb As Double, salg As Double
til
  indkøb As variant, salg As variant
Avatar billede Loppen58 Nybegynder
21. juli 2011 - 10:02 #8
Hold da op, hvor det virker :-) Det var variant, der løste problemet. Så fik jeg lært det. Tusind tak for hjælpen.
Avatar billede supertekst Ekspert
21. juli 2011 - 11:17 #9
Fint - selv tak - skulle det være en anden gang...
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
Kurser inden for grundlæggende programmering

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