Avatar billede HHA Guru
03. februar 2021 - 19:00 Der er 11 kommentarer og
3 løsninger

Overføre tekst fra et ark til et andet

Hejsa,

Så har jeg igen en udfordring jeg kæmper med, som jeg håber nogen kan hjælpe mig på rette vej med.

Jeg har brug for at overføre indholdet fra ark Test1 til ark Test2.

Hvis jeg i Test1 stiller mig i kolonne 3 (A), skal den ud fra den celle, (rækken vil variere), jeg står på tage teksten fra cellerne som nedenfor:

Eksempel:
Jeg står i celle A20 i Test1 her vil jeg udføre nedenstående når jeg kører en makro.
På ark Test 2, skal den fjerne indholdet i nogle bestemte celler, inden den begynder overførsel.
Her er et par celler som eksempler, så håber jeg at jeg selv kan programmere det færdigt, C10, C4 og F12.

Her efter skal den overføre indholdet fra cellerne:
C22 til celle B10 i Test2 og D22 til celle C10 i Test2 arket.

I Test1 har jeg i kolonne B22 to forskellige muligheder fra en rulle menu.
X1 og X2
Hvis B22 viser X1, skal den overføre R22 fra Test 1 til F12 på Test2.
Hvis B22 viser X2, skal den overføre R22 fra Test 1 til C14 på Test2.

På ark Test 2, skal den fjerne indholdet i nogle bestemte celler, inden den begynder overførsel.
Her er et par celler som eksempler, så håber jeg at jeg selv kan programmere det færdigt, C10, C4 og F12.

Samme handling skal den kunne lave, med samme offset  hvis jeg fx stiller mig i A57 i Test1.

Håber jeg har forklaret mig tydeligt, så det kan forstås.
Avatar billede store-morten Ekspert
03. februar 2021 - 19:29 #1
"Hvis jeg i Test1 stiller mig i kolonne 3 (A)?"
Kolonne 3 = C?

"den fjerne indholdet i nogle bestemte celler"
Er det altid de samme celler?

"Samme handling skal den kunne lave, med samme offset  hvis jeg fx stiller mig i A57 i Test1."
Gælder dette også for Test2, eller er det faste celler?
Avatar billede HHA Guru
03. februar 2021 - 19:47 #2
"Hvis jeg i Test1 stiller mig i kolonne 3 (A)?"
Kolonne 3 = C?
Kolonne 1 (A)

"den fjerne indholdet i nogle bestemte celler"
Er det altid de samme celler?
JA

"Samme handling skal den kunne lave, med samme offset  hvis jeg fx stiller mig i A57 i Test1."
Gælder dette også for Test2, eller er det faste celler?
Test2 er de samme celler.
Derfor skal den rydde de bestemte celler først.

Så skal jeg herefter se om jeg kan få den til at lave Test2 om til en PDF og sætte den ind i en mail.
Men der har jeg fundet en kode på nettet.

Så prøver at tage kampen fra en ende af :)
Avatar billede HHA Guru
03. februar 2021 - 19:48 #3
Svarede vist ikke helt klart.

"Samme handling skal den kunne lave, med samme offset hvis jeg fx stiller mig i A57 i Test1."
Gælder dette også for Test2, eller er det faste celler?
Det er faste celler.
Avatar billede store-morten Ekspert
03. februar 2021 - 19:56 #4
Slet celler:

Worksheets("Test2").Range("C4,C10,F12").ClearContents
Avatar billede store-morten Ekspert
03. februar 2021 - 19:58 #5
Overfør C og D ud fra aktive celle, til faste celler:

Worksheets("Test1").Range("C" & ActiveCell.Row + 2).Copy _
Destination:=Worksheets("Test2").Range("B10")

Worksheets("Test1").Range("D" & ActiveCell.Row + 2).Copy _
Destination:=Worksheets("Test2").Range("C10")
Avatar billede store-morten Ekspert
03. februar 2021 - 20:12 #6
Overfør hvis X1 eller X2:

If Worksheets("Test1").Range("B22") = "X1" Then

    Worksheets("Test1").Range("R22").Copy _
    Destination:=Worksheets("Test2").Range("F12")

ElseIf Worksheets("Test1").Range("B22") = "X2" Then

    Worksheets("Test1").Range("R22").Copy _
    Destination:=Worksheets("Test2").Range("C14")
   
End If
Avatar billede store-morten Ekspert
03. februar 2021 - 20:27 #7
Samlet og forkortet, f.eks. er det ikke nødvendigt at slette, da celler overskrives:
Sub test2()

'Overfør Cxx:Dxx og overskriver
Worksheets("Test1").Range("C" & ActiveCell.Row + 2 & ":D" & ActiveCell.Row + 2).Copy _
Destination:=Worksheets("Test2").Range("B10:C10")

'Overfør hvis B22 = X1 eller X2 og overskriver
If Worksheets("Test1").Range("B22") = "X1" Then

    Worksheets("Test1").Range("R22").Copy _
    Destination:=Worksheets("Test2").Range("F12")

ElseIf Worksheets("Test1").Range("B22") = "X2" Then

    Worksheets("Test1").Range("R22").Copy _
    Destination:=Worksheets("Test2").Range("C14")

End If

End Sub
Avatar billede HHA Guru
03. februar 2021 - 20:52 #8
Må jeg teste snarest muligt.

Du er sgu en ener :)
Avatar billede HHA Guru
04. februar 2021 - 16:06 #9
Hej store-morten,

Denne linje har en fejl, tror det er fordi den ikke går til højre til cellen D eller kan læse hvordan den skal det.

Worksheets("Test1").Range("C" & ActiveCell.Row + 2 & ":D" & ActiveCell.Row + 2).Copy _
Destination:=Worksheets("Test2").Range("B10:C10")

Har siddet og fiflet med det noget tid, men kan ikke få den til at markeret.
Af ren nysgerrighed, kan du se hvad den fejler?
Fejl meddelelse: Application-defined of object-defined error.


Skal dog siges at hvis jeg bruger disse linjer, så virker det.

Worksheets("Test1").Range("C" & ActiveCell.Row + 2).Copy _
Destination:=Worksheets("Test2").Range("B10")

Worksheets("Test1").Range("D" & ActiveCell.Row + 2).Copy _
Destination:=Worksheets("Test2").Range("C10")

Med det forbehold at den ikke kan lide hvis celle C10 er flettet med D10,E10.
Men de kunne jeg klare med Range("C10:E10")
Avatar billede store-morten Ekspert
04. februar 2021 - 16:15 #10
Fletning af celler skulle aldrig være opfundet 🤔
Så du har selv fundet problemet 👌
Avatar billede HHA Guru
04. februar 2021 - 19:09 #11
Takker for din indsats store-morten 👍👍👍
Avatar billede HHA Guru
04. februar 2021 - 20:39 #12
Hej store-morten,

Har lidt problemer med denne, den vil ikke virke:

'Overfør hvis B22 = X1 eller X2 og overskriver
If Worksheets("Test1").Range("B22") = "X1" Then

    Worksheets("Test1").Range("R22").Copy _
    Destination:=Worksheets("Test2").Range("F12")

ElseIf Worksheets("Test1").Range("B22") = "X2" Then

    Worksheets("Test1").Range("R22").Copy _
    Destination:=Worksheets("Test2").Range("C14")

Den overfører ikke noget. Er det noget med If, Then eller ElseIf ?

Men hvis jeg kun har dette, kan den godt:
Worksheets("Test1").Range("R22").Copy _
    Destination:=Worksheets("Test2").Range("F12")
Men så er X1 og X2 ude af funktion.
Avatar billede store-morten Ekspert
04. februar 2021 - 22:32 #13
Der skal stå X1 eller X2 i celle B22 ellers sker der ikke noget.
Avatar billede HHA Guru
05. februar 2021 - 15:49 #14
Hejsa,

Der står noget i de celler.

Men der manglede "value"
Noget søgning og prøvning, så lykkedes det mig.
Learning by doing 😁

If Worksheets("Kalk").Range("M" & ActiveCell.Row + 2).Value = "JA" Then

Men Dejligt at I gider hjælpe os der kæmper med det :)
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
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