27. oktober 2023 - 12:48Der er
8 kommentarer og 2 løsninger
Nybegynder søger hjælp til makro
Hej
Jeg skal havde lavet en makro der kan indsætte en ny linje i en tabel i arket "Data", kopiere data fra 3 forskellige celler i arket "registrering" denne del virker fint. men hvis jeg kører makroen igen så indsættes det nye data oveni det gamle. MEN hvordan får jeg den til at starte i en ny række hver gang?
Din udfordring er at du har faste referencer, du skal nok læse lidt om offset eller måske kan du skrukturere din makro så kan arbejde i en kolonne ad gangen.
Du kopierer fra fanen registrering C4, C6 og F6 - er det altid disse celler, eller skifter de også? En ide er at lave en variabel med værdierne fra disse celler - a la: variabel1 = sheets("Registrering").range("C4").value
Kan du generisk beskrive hvad du skal gøre? Hvordan vælger du hvor der skal indsættes linje?
Det er altid fra cellerne C4, C6 og F6 at data skal hentes fra. De tre celler skal benyttes til at indtaste initialer, fornavn og efternavn. Min tanke var så at koble makroen op på en kanp der kunne flytte data fra disse 3 celler over i et andet ark, der skal bruges til opslag. Hvert input fra de 3 celler skal lagres i en ny række hver gang.
Ah okay, så handler det om at lave en variabel som viser hvilken række der er tom, det kan blot være. Din makro kan se sådan ud: Sub Makro10() Dim intSidsteRaekke As Integer intSidsteRaekke = Worksheets("Data").Range("A1").End(xlDown).Row Sheets("Registrering").Range("C4").Copy Sheets("Data").Cells(intSidsteRaekke + 1, 1) Sheets("Registrering").Range("C6").Copy Sheets("Data").Cells(intSidsteRaekke + 1, 2) Sheets("Registrering").Range("F6").Copy Sheets("Data").Cells(intSidsteRaekke + 1, 3) End Sub
Lige et tillægs spørgsmål, hvordan forhindre jeg at min formatering fra cellen der bliver kopieret fra følger med over i den nye celle, f.eks. hvis der er gitterlinjer omkring en celle.
Så skal du have det i to linjer: Sheets("Registrering").Range("C4").Copy Sheets("Data").Cells(intSidsteRaekke + 1, 1).PasteSpecial Paste:=xlPasteValues
tak for hjælpen. Jeg har nu sat det op i 2 linjer. Som sådan her: Sub Personinfo() Dim intSidsteRaekke As Integer intSidsteRaekke = Worksheets("Data").Range("A1").End(xlDown).Row Sheets("Registrering").Range("C4").Copy Sheets("Data").Cells(intSidsteRaekke + 1, 1).PasteSpecial Paste:=xlPasteValues Sheets("Registrering").Range("C6").Cut Sheets("Data").Cells(intSidsteRaekke + 1, 2).PasteSpecial Paste:=xlPasteValues Sheets("Registrering").Range("F6").Cut Sheets("Data").Cells(intSidsteRaekke + 1, 3).PasteSpecial Paste:=xlPasteValues End Sub
Men jeg får fejl på denne linje "Sheets("Data").Cells(intSidsteRaekke + 1, 2).PasteSpecial Paste:=xlPasteValues"
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.