Avatar billede toyotahiace Nybegynder
19. august 2001 - 21:00 Der er 15 kommentarer og
1 løsning

udprint i excel

jeg skal bruge en metode til at kopiere specifikke rækker fra et regneark til et andet.
Men de rækker der skal flyttes er forskellige fra gang til gang, og afhængige af om der er indtastet noget i een af reference cellerne.
Kan man lave en makro til det, og hvordan? (forslag)
Regnearket som skal kopieres, er en fast \"skabelon\", hvorfra kun enkelte af rækkerne skal bruges, dog forskellige fra gang til gang, og flyttes til et \"print ud\" ark.
det drejer sig om at een række med data f.eks. A5:F5 skal overflyttes til et \"print ud\" ark, men kun hvis data i celle f.eks. B5 er forskellig fra 0 (nul).

19. august 2001 - 21:13 #1
Jeg kigger på det.
Avatar billede hundevennen Nybegynder
19. august 2001 - 21:20 #2
lav et område på samme ark der ikke umiddelbart ses på skærmen og brug =, altså f.eks hvis du vil have at a1 skal være lig k5 - klik på k5 og klik på = klik derefter på a1 og tryk enter - så alt hvad der indtastes i a1 vil fremkomme i k5 og så fremdeles - selvfølgelig stort arbejde hvis du har mange rækker i brug - men en løsning
Avatar billede hundevennen Nybegynder
19. august 2001 - 21:21 #3
du definere så området k5:XX som udskriftsområde
Avatar billede janvogt Praktikant
19. august 2001 - 21:39 #4
Kan problemet ikke løses med en formel?
Noget i retning af:
=HVIS(B5<>0;SÅ OVERFØR RÆKKE;OVERFØR IKKE RÆKKE)

Hvis alle de overførte SKAL stå lige under hinanden uden tomme rækker skal der dog en simpel lille makro til.
Eller måske behøver man ikke engang VBA-kode, men kan klare problemet med en lidt snørklet formel.

Det kommer lidt an på, hvordan dit ark ser ud.
Har du muligehed for at sende det til jan_vogt_hansen@hotmail.com så skal jeg kigge på det.
19. august 2001 - 21:46 #5
Denne makro løser problematikken fint

Sub FlytDataLinie()
Dim sDataFra As String
Dim sDataTil As String

    \'Angiv navne på de ark du har
    sDataFra = \"DataArk\" \'Udskift til dit arknavn
    sDataTil = \"PrintArk\" \'Udskift til dit arknavn

    \'Checker B5
    Worksheets(sDataFra).Select
    If Worksheets(sDataFra).Range(\"B5\") <> \"\" Then
   
        \'Finder næste tomme linie på PrintArket
        Worksheets(sDataTil).Select
        Range(\"B65000\").End(xlUp).Offset(1).Select
        ActiveCell.Offset(0, -1).Select
       
        ActiveCell.Offset(0, 0) = Worksheets(sDataFra).Range(\"A5\")
        ActiveCell.Offset(0, 1) = Worksheets(sDataFra).Range(\"B5\")
        ActiveCell.Offset(0, 2) = Worksheets(sDataFra).Range(\"C5\")
        ActiveCell.Offset(0, 3) = Worksheets(sDataFra).Range(\"D5\")
        ActiveCell.Offset(0, 4) = Worksheets(sDataFra).Range(\"E5\")
        ActiveCell.Offset(0, 5) = Worksheets(sDataFra).Range(\"F5\")
       
        MsgBox \"Data er flyttet\"
   
    Else
       
        MsgBox \"Celle B5 = 0. Data er ikke flyttet.\"
       
    End If

End Sub
19. august 2001 - 21:49 #6
Hovsa....

I denne sektion skal du udskrifte \"\" med 0
    \'Checker B5
    Worksheets(sDataFra).Select
    If Worksheets(sDataFra).Range(\"B5\") <> \"\" Then

således:
    \'Checker B5
    Worksheets(sDataFra).Select
    If Worksheets(sDataFra).Range(\"B5\") <> 0 Then
   
           
       
Avatar billede toyotahiace Nybegynder
19. august 2001 - 21:50 #7
tak til flemmingdahl
19. august 2001 - 21:51 #8
velbekomme :-)
Avatar billede janvogt Praktikant
19. august 2001 - 22:55 #9
Ovenstående makro flytter vel kun række 5 ?

Så vidt jeg kan se af spørgsmålet er der behov for en løkke som gennemløber mange rækker og overflytter ALLE de rækker, hvor værdien i kolonne B er forskellig fra 0.
Avatar billede janvogt Praktikant
20. august 2001 - 14:32 #10
>>> toyotahiace

Har jeg ret i min betragtning?
Selvom pointene er fordelt er spørgsmålet vel ikke besvaret, eller?
Avatar billede toyotahiace Nybegynder
20. august 2001 - 14:42 #11
>>>jan vogt
Du har fuldstændig ret, der er brug for et eller andet loop men jeg ændrede bare \"lidt\" i makroen og kopierede den det antal gange som jeg havde linier der skulle flyttes, og det virker tilsyneladene perfekt.
20. august 2001 - 17:45 #12
Skal det laves på check af indhold i kolonne B ?
Så gør jeg da gerne det.
Avatar billede toyotahiace Nybegynder
21. august 2001 - 13:31 #13
>>>> flemming dahl
Ja akkurat, det er kolonne B der afgør om data skal flyttes
21. august 2001 - 15:24 #14
Jeg kigger på det i aften.
21. august 2001 - 19:24 #15
Here you are :-)

Sub FlytDataLinie_02()
Dim iTomRowNo As Integer, iX As Integer
Dim wsDataFra As Worksheet, wsDataTil As Worksheet
Dim rCell As Range

    \'Angiv navne på de ark du har
    Set wsDataFra = Worksheets(\"DataArk\")
    Set wsDataTil = Worksheets(\"PrintArk\")

    \'Finder næste tomme linie på PrintArket
    wsDataTil.Select
    iTomRowNo = Range(\"B65000\").End(xlUp).Row

    \'Checker B-kolonnen i DataArk fra linie 5 til 500
    wsDataFra.Select
    For Each rCell In wsDataFra.Range(\"B5:B500\")
        If rCell <> 0 Then
            iX = iX + 1
            wsDataTil.Range(\"A\" & iTomRowNo + iX).Value = rCell.Offset(1, -1)
            wsDataTil.Range(\"B\" & iTomRowNo + iX).Value = rCell.Offset(1, 0)
            wsDataTil.Range(\"C\" & iTomRowNo + iX).Value = rCell.Offset(1, 1)
            wsDataTil.Range(\"D\" & iTomRowNo + iX).Value = rCell.Offset(1, 2)
            wsDataTil.Range(\"E\" & iTomRowNo + iX).Value = rCell.Offset(1, 3)
            wsDataTil.Range(\"F\" & iTomRowNo + iX).Value = rCell.Offset(1, 4)
        End If
    Next rCell

End Sub
Avatar billede toyotahiace Nybegynder
22. august 2001 - 11:49 #16
>>> Flemmingdahl.
Super, det funker :-) tusind tak.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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