• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Macro vanag een ander tabblad uitvoeren

Status
Niet open voor verdere reacties.

surfingmaster

Gebruiker
Lid geworden
5 mei 2010
Berichten
88
Beste heren/dames,

ik probeer een macro te maken die ik vanaf een ander tabblad kan uitvoeren en ik kom er niet uit. Ik kan de macro alleen uitvoeren op het tabbald waar de macro uitgevoerd wordt. Ik hoop dat iemand mij kan helpen.

Het gaat om de volgende macro:
Code:
Sub Regelinvoegen ()
Application.ScreenUpdating = False
With Sheets("Blad2")
Rows("17:17").Copy
Dim col As Integer
col = Sheets(“Blad2”).UsedRange.Rows.Count
Cells(col - 9, 1).Activate
With ActiveCell
.EntireRow.Insert
End With
Range("B17:H17").Select
Selection.AutoFill Destination:=Range("B17:LaatsteRegel"), Type:=xlFillDefault
Application.CutCopyMode = False
End With
Application.ScreenUpdating = True
ActiveSheet.Protect Password:=""
End Sub

Alvast bedankt,
Erwin
 
Je bent de punt vergeten bij de Rows.

Je gebruikt ...
Code:
With Sheets("Blad2")
Rows("17:17").Copy
Dat kan maar omdat je maar 1 regel daarvan gebruikt (je geeft op de regel daaronder aan welke rij gekopieerd moet worden),
kan je volstaan met ...
Code:
 Sheets("Blad2").Rows("17:17").Copy

Belangrijker is nog dat door de punt voor de Rows, je verwijst naar het werkblad Blad2.
Doe je dit niet dan verwijs je naar het actieve werkblad!

Voorbeeld:
Stel dat Blad1 het actieve werkblad is:
Code:
With Sheets("Blad2")
     Range("A1").Value = "Hallo"
End With

De tekst Hallo wordt in Blad1 geplaatst!
De With...End With constructie heeft hier geen betekenis.

Code:
With Sheets("Blad2")
     .Range("A1").Value = "Hallo"
End With
Nu wordt wél verwezen naar het cel A1 op Blad2.

Met vriendelijke groet,


Roncancio
 
Laatst bewerkt:
Code:
Selection.AutoFill Destination:=Range("B17:LaatsteRegel"), Type:=xlFillDefault
Hier gebruik je een variabele LaatsteRegel maar ...
1. Je declareert hem niet dus
Code:
Dim col as integer, LaatsteRegel as integer
2. Je geeft niet aan waarvoor LaatsteRegel staat, wat je bij col wel doet dus
Code:
LaatsteRegel = ????
3.Je geeft niet aan voor welke kolom LaatsteRegel geldt dus
Code:
Selection.AutoFill Destination:=Range("B17:[COLOR="red"]??[/COLOR]" & LaatsteRegel), Type:=xlFillDefault
4.Het is niet nodig om een Range eerst te selecteren en daarna de bewerking uit te voeren dus
Code:
Range("B17:H17").AutoFill Destination:=Range("B17:LaatsteRegel"), Type:=xlFillDefault

Suc6 verder :thumb:
 
LaatsteRegel, heb ik gedefinieerd via tabbald formule.

Heb nu de volgende macro en hij werkt.

Bedankt voor jullie hulp.

Code:
Sub RegelinvoegenOmzet()
Sheets("Blad2").Unprotect Password:=""
Application.ScreenUpdating = False
Sheets("Blad2").Rows("17:17").Copy
Dim col As Integer
col = Sheets("Blad2").UsedRange.Rows.Count
Sheets("Blad2").Cells(col - 9, 1).EntireRow.Insert
Sheets("Blad2").Range("B17:H17").AutoFill Destination:=Sheets("Blad2").Range("B17:LaatsteRegel"), Type:=xlFillDefault
Application.CutCopyMode = False
Application.ScreenUpdating = True
Sheets("Blad2").Protect Password:=""
End Sub

Gr,
Erwin
 
Laatst bewerkt:
Code:
Sub RegelinvoegenOmzet()
Dim col As Integer
Application.ScreenUpdating = False
    With Sheets("Blad2")
        .Unprotect Password:=""
        .Rows("17:17").Copy
    col = .UsedRange.Rows.Count
        .Cells(col - 9, 1).EntireRow.Insert
        .Range("B17:H17").AutoFill Destination:=.Range("B17:LaatsteRegel"), Type:=xlFillDefault
        .Protect Password:=""
    End With
With Application
    .CutCopyMode = False
    .ScreenUpdating = True
End With
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan