Avatar billede Peter456 Nybegynder
20. september 2011 - 11:13 Der er 4 kommentarer og
1 løsning

Macro til Excel 2007

Macro til Excel 2007
Jeg skal bruge en funktion som jeg kan bruge i min macro.
jeg har hver måned en liste med data som jeg skal have kopieret over i et andet regneark, i en kolonne for den specifikke måned.
Selv kopiering er ikke noget problem, men jeg har problemer med at så defineret hvilken kolonne dataerne skal kopieres ind i.
Jeg har defineret en celle i mit kilde ark, hvor man skal skrive den aktuelle måned i, macroen skal så finde det månedsnavn som jeg har defineret i den specifikke celle, i det andet ark. derefter skal jeg så have kopieret indholdet fra kolonnen i kildearket til den kolonne i mit andet ark som passer til månedsnavnet i den specifikke celle i mit kildeark.
Altså: jeg skal bruge en macro funktion/kode som kan finde en/et bestemt navn, som er angivet i en celle, i et defineret område på resultatarket. således at jeg kan kopiere et listeområde ind i en specifik kolonne.
Avatar billede Wally73 Mester
20. september 2011 - 12:48 #1
En simpel løsning ville være at placere markeringen i den første celle og så ellers lave et loop der tester cellens værdi og hvis det ikke er den rigtige, så hopper til næste celle.

Det kunne se således ud.

    Range("A1").Select
    Do While ActiveCell.Value() <> "TestVærdi"
        ActiveCell.Offset(1, 0).Range("A1").Select
    Loop
Avatar billede Peter456 Nybegynder
22. september 2011 - 14:59 #2
Hej Wally73

Jeg kan desværre ikke få det til at fungere, kan du uddybe hvorledes jeg skal udfylde mine refferencer?

Her er min midlertidige macro:

U9 er start cellen for mine data jeg skal have kopieret, men jeg kan ikke få do-loop funktionen til at finde den specifikke måned hvor den skal kopiere dataerne ind?
de tre celler fra U18 til W18 er pt. månederne hvori den skal finde den rigtige måned.
og R8 cellen er der hvor den specifikke måned står, (denne vil skifte i næste måned)


Range("U9").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Range("U18:W18").Select
    Do While ActiveCell.Value() <> "R8"
    ActiveCell.Offset(0, 1).Range("U18").Select
    Loop
    ActiveSheet.Paste
End Sub
Avatar billede Wally73 Mester
22. september 2011 - 18:04 #3
Sub Wally73()

    Range("U9").Select  ' Sætter U9-cellen til at være aktiv.
    Range(Selection, Selection.End(xlDown)).Select ' Markerer fra den aktive celle og resten af kolonnen nedad.
    Selection.Copy ' Kopierer markeringen.

    Range("R8").Select ' Sætter R8-cellen til at være aktiv.
    TestValue = ActiveCell.Value() ' Henter værdien fra den aktive celle og gemmer den i en variable.

    Range("U18").Select ' Sætter U18-cellen til at være aktiv.

    Do While ActiveCell.Value() <> TestValue ' Tester indtil den aktive celle er lig med værdien i variablen. Den tester indtil den finder den rigtige værdi eller indtil enden på arket nås og der opstår en fejl, så udbyg evt. med en tæller-funktionalitet for at gør den mere sikker mod fejl.
        ActiveCell.Offset(0, 1).Range("A1").Select ' Skifter den aktive celle til cellen til højre.
    Loop ' Gentager hvis betingelsen ikke er opfyldt.

    ActiveSheet.Paste ' Indsætter de kopierede celler.

End Sub
Avatar billede Peter456 Nybegynder
23. september 2011 - 15:55 #4
Allerede besvaret andet sted
Avatar billede Wally73 Mester
23. september 2011 - 16:55 #5
helt ok. Du vender bare tilbage, hvis det bliver nødvendigt. :)
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