• 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.

Variabele sheet selecteren

Status
Niet open voor verdere reacties.

zwans

Gebruiker
Lid geworden
28 apr 2010
Berichten
32
Mensen,

In mijn bestand staat in cel E6 een waarde die overeenkomt met de naam van een sheet.

Ik wil graag via een macro naar de sheet gaan die dezelfde naam heeft als dat er in cel E6 is ingevuld.

Mijn idee was:

Range("E6").Select
Sheets(ActiveCell.Value).Select

Dit werkt echter niet...
Weet iemand hoe dit kan en hoe ik dit kan oplossen?

Bij voorbaat dank!

Met vriendelijke groet,

Ronald Buikema
 
Laatst bewerkt:
Zo werkt het wel:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E6")) Is Nothing Then Worksheets(Target.Value).Select
End Sub

Met vriendelijke groet,


Roncancio
 
Ok, maar als ik dit tussen mijn code in zet werkt het niet.
Het ziet er dan zo uit:

Sub Macro1()
'
' Macro1 Macro
' De macro is opgenomen op 25-7-2011 door Ronald Buikema.
'

UserForm1.Show

Sheets("Informatie").Select
Range("F6").Select
Selection.Copy

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E6")) Is Nothing Then Worksheets(Target.Value).Select
End Sub

Range("P1").Select
Selection.Paste
Application.CutCopyMode = False

'
End Sub

Bovenstaand werkt dus niet.
Weet iemand hoe ik dit wel werkend kan krijgen?

Bij voorbaat dank!

Met vriendelijke groet,

Ronald Buikema
 
Mensen,

In mijn bestand staat in cel E6 een waarde die overeenkomt met de naam van een sheet.

Ik wil graag via een macro naar de sheet gaan die dezelfde naam heeft als dat er in cel E6 is ingevuld.

Mijn idee was:

Code:
Range("E6").Select
Sheets(ActiveCell.Value).Select

Dit werkt echter niet...
Weet iemand hoe dit kan en hoe ik dit kan oplossen?

Bij voorbaat dank!

Met vriendelijke groet,

Ronald Buikema

en wat doet dit:

Code:
tablad=Range("E6").value
Sheets(tablad).Select
 
Mijn code moet in de VBE bij de betreffende werkblad staan en dus niet in een module.
Bovendien kan je code van de macro wat korter

Code:
Sub Macro1()

Range("P1").Value = Sheets("Informatie").Range("F6").Value

End Sub

Met vriendelijke groet,


Roncancio
 
Laatst bewerkt:
Mijn code moet in de VBE bij de betreffende werkblad staan en dus niet in een module.

Met vriendelijke groet,


Roncancio

Ok, dan is het niet toepasbaar in mijn sheet.

Weet je ook of er een code is die in mijn module te passen is?

Met vriendelijke groet,

Ronald Buikema
 
Je code kan overigens korter:

Code:
Sub Macro1()

Range("P1").Value = Sheets("Informatie").Range("F6").Value

End Sub

Met vriendelijke groet,


Roncancio
 
Ok, dan is het niet toepasbaar in mijn sheet.

Weet je ook of er een code is die in mijn module te passen is?

Met vriendelijke groet,

Ronald Buikema

Dat hangt er maar vanaf wat je wilt doen.
De code kan toepasbaar zijn in je sheet.

Met vriendelijke groet,


Roncancio
 
Ronald,

probeer deze bijlage maar eens......


NB: wat was de foutmelding die je kreeg?
 

Bijlagen

Geeft ook een foutmelding...

Code ziet er dan zo uit:

Sub Macro1()
'
' Macro1 Macro
' De macro is opgenomen op 25-7-2011 door Ronald Buikema.
'

UserForm1.Show

Sheets("Informatie").Select
Range("F6").Select
Selection.Copy

tablad = Range("E6").Value
Sheets(tablad).Select

Range("P1").Select
Selection.Paste
Application.CutCopyMode = False

'
End Sub

Hij geeft aan:

Fout 9

Het subscript valt buiten het bereik

Kan iemand me helpen?

Bij voorbaat dank!

Met vriendelijke groet,

Ronald Buikema
 
Ronald,

post je eigen bestand eens als bijlage (ontdaan van evt "gevoelige" info)
 
Als je een userform laadt is het gebruikelijk dat je dat aan het eind doet.
Code:
Sub Macro1()
With Sheets("Informatie")
     Sheets(.Range("E6")).Range("P1").Value = .Range("F6").Value
End With
Userform1.Show
End Sub
Een voorbeeldbestand kan inderdaad geen kwaad.

Met vriendelijke groet,


Roncancio
 
Laatst bewerkt:
Code:
Sub Macro1()
 '
 ' Macro1 Macro
 ' De macro is opgenomen op 25-7-2011 door Ronald Buikema.
 '
    With Sheets("Informatie")
        .Range("F6").Copy Sheets(.Range("E6").Value).Range("P1")
    End With
    Application.CutCopyMode = False
    UserForm1.Show
End Sub
 
Als je een userform laadt is het gebruikelijk dat je dat aan het eind doet.
Code:
Sub Macro1()
With Sheets("Informatie")
     Sheets(.Range("E6")).Range("P1").Value = .Range("F6").Value
End With
Userform1.Show
End Sub
Een voorbeeldbestand kan inderdaad geen kwaad.

Met vriendelijke groet,


Roncancio

Ok, maar cel E6 wordt gevuld door een waarde die in het userform wordt ingevuld. Dan kan dit toch niet aan het eind?

Ik heb het inmiddeld werkend maar heb nog wel een andere vraag. Die post ik wel even in een nieuwe vraag.

Allemaal heel erg bedankt!

Met vriendelijke groet,

Ronald Buikema
 
Zet dan in Sub Macro1 enkel de code om je userform te tonen en de code voor het kopieëren zet je in de userform-module die je dan verbind met een aparte knop of bij een event van het object waarin je de waarde voor E6 wijzigt.Kopieër dan eerst de waarde naar je blad en dan vervolg je met het kopiedeel
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan