14. juni 2019 - 12:16 Der er 14 kommentarer og
1 løsning

VBA Indsætning af skabeloner

Jeg har nogle aktivitetsark med 1 skema hver. Når der skal påføres ekstra skemaer kører jeg denne makro ved en makroknap som er placeret under det øverste ark, for at indsætte den klargjorte skabelon under. Når så jeg har kørt makroen et par gange i samme fane, så bliver knappet overlappet af skemaerne. Hvordan kan dette undgås??

Makro:

Sub IndsætEkstraBoks()

Dim slut As String
Dim i As Integer
Dim rng As Range
Dim RowNo As Integer
Dim aktivitet As Worksheet

Set aktivitet = ThisWorkbook.ActiveSheet
i = 0
slut = "stop" & i
For i = 1 To 100
    slut = "stop" & i

    Columns("B:B").Select
    Set rng = Selection.Find(what:=slut, After:=ActiveCell, LookIn:=xlFormulas, _
      lookat:=xlPart, searchorder:=xlByRows, searchdirection:=xlNext, _
      MatchCase:=False)
   
    If rng Is Nothing Then
       
        slut = "stop" & i - 1
        RowNo = aktivitet.Range("B:B").Find(what:=slut, After:=ActiveCell, LookIn:=xlFormulas, _
            lookat:=xlPart, searchorder:=xlByRows, searchdirection:=xlNext, _
            MatchCase:=False, SearchFormat:=False).Row
       
   
        Sheets("Lister").Activate
        Range("A34:AV45").Select
        Selection.Copy
        aktivitet.Activate
        Range("A" & RowNo).Offset(4, 0).Select
        Selection.Insert Shift:=xlDown
       
        ActiveSheet.Range("B" & RowNo).Offset(15, 0) = "stop" & i
             
        Exit Sub           
    Else         
        End If
    Next i
End Sub
Avatar billede Jan K Ekspert
14. juni 2019 - 14:38 #1
Hvad med at flytte knappen op øverst i stedet for nederst?
14. juni 2019 - 20:14 #2
En tanke som er blevet tænkt, men så skal man scrolle op hver gang man skal bruge et nyt skema.
Avatar billede Jan Hansen Ekspert
14. juni 2019 - 20:40 #3
Ligge knappen i en userform der åbnes når arket aktiveres

Jan
Avatar billede Jan K Ekspert
14. juni 2019 - 23:34 #4
Lad makroen flytte knappen, når den har indsat det, der skal indsættes:

    ActiveSheet.Shapes("CommandButton1").IncrementTop 500

Ret selv til det rigtige navn på knappen, og hvor langt den skal flyttes. Prøv dig evt frem med afstanden. positive tal flytter ned, negative flytter op.
15. juni 2019 - 09:02 #5
Tak for input det kører.

Nu skal jeg så bare finde ud af hvordan jeg får den til at køre det modsatte. Altså at den sletter i stedet for at indsætte.
15. juni 2019 - 20:10 #6
@Jan K

Det er bare en figur jeg har tildelt en makro. Har ikke gjort brug af en Commandbutton, eftersom den åbenbart ikke vil forstå:

Range("A34:AV45").Select
Selection.Copy

Kan ikke finde ud af hvad figuren hedder. Der står "Rektangel5" i venstre hjørne, men det virker ej heller.
Avatar billede Jan K Ekspert
15. juni 2019 - 22:25 #7
Jeg skal se på det i morgen.
Avatar billede Jan K Ekspert
16. juni 2019 - 00:27 #8
Med et rektangel ellewr andre shapes, er du tilsneladende nødt til at select dem før du kan flytte dem, fx

ActiveSheet.Shapes.Range(Array("Rektangel5")).Select
Selection.ShapeRange.IncrementTop 500
Avatar billede Jan K Ekspert
16. juni 2019 - 00:31 #9
Lidt eksperimenteren viste, at du kan gøre det uden at selecte først:

ActiveSheet.Shapes("Rektangel5").IncrementTop 500
16. juni 2019 - 12:18 #10
Har prøvet, men det virker ikke :(
Avatar billede Jan K Ekspert
16. juni 2019 - 13:15 #11
Hvad sker der, når du prøver?
16. juni 2019 - 14:25 #12
Sætningen bugger, bliver markeret med gult i vba og stopper koden.
Avatar billede Jan K Ekspert
16. juni 2019 - 17:59 #13
Hvad er feljlkoden? Når jeg prøver hos mig selv fungerer det  fint.
16. juni 2019 - 18:19 #14
Run-time error '-2147024809 (80070057)':
Emnet med det angivne navn blev ikke fundet.

Så jeg aner ikke hvad figuren hedder hvis Rektangel5 er forkert
16. juni 2019 - 18:36 #15
Det fungerer nu! Jeg fandt ud af at den lagde figurene ovenpå hinanden idet jeg har kopieret hele arket fra en skabelon jeg har stillet klar til testkørsler. Så det navn der stod oppe i navnefeltet til figuren var misvisende....

Men tusinde tak for hjælpen Jan!! :) :)

Jeg markerer dit svar med den første kode for at lade makroen rykke figuren som løsningen.

Et lille bonus spørgsmål hvis du har mod på det.

Når jeg har sådan en kode som beskrevet i toppen, hvor jeg tilføjer skema under skema, ved brug at søgeordet "stop" og så 1-100. Kan jeg så også få den til at slette og op til det øverste skema hvor der står "stop0" som søgeord og hvordan skal koden opstilles?
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

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