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

werkblad verwisselen lukt niet

Status
Niet open voor verdere reacties.

PatrikH

Nieuwe gebruiker
Lid geworden
4 jan 2012
Berichten
4
Beste excel experts,

Ik ben bezig met een soort databaseje voor meldingen van sportiviteit & respect voor onze plaatselijke vv.
Nu opent hij vanuit het start excel werkmapje op een gegeven moment een tweede map waar ik de melding in zet.
hij moet dus switchen tussen het blad melding1 en dan PHB ( naam hoofdmap ) weer terug naar melding1.
Dat laatste doet hij niet, ik heb al van alles geprobeerd maar krijg steeds :

fout 9 tijdens uitvoeren
Het subscript valt buiten het bereik

kan iemand mij helpen AUB ??

Code:
Application.ScreenUpdating = False
    
    'dossiernummer als waarde wegschrijven
    Range("C3").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    ActiveSheet.Paste
    Application.CutCopyMode = False

    Range("N5:R5").Select
    Selection.Copy
    
    Windows("PHB.xls").Activate
    Sheets("Adressen").Select
    Range("B1000:F1000").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        
 'gegevens sorteren op datum
    Windows("PHB.xls").Activate
    Sheets("Adressen").Select
         Columns("B:E").Select
    ActiveWorkbook.Worksheets("Adressen").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Adressen").Sort.SortFields.Add Key:=Range( _
        "C2:C1242"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("Adressen").Sort
        .SetRange Range("B1:F1242")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("B1").Select
    Sheets("zoekblad klanten").Activate
     Application.ScreenUpdating = True
    [COLOR="red"] Windows("melding1.xls").Activate[/COLOR]   'hier geeft hij de fout
    Sheets("Blad1").Select



alvast veel dank,

Gr,
Patrik
 
Laatst bewerkt door een moderator:
Je naam van het bestand is anders dan wat in de code staat.
Moet de (1) één wel achter 'Melding1'?

Ook je gehele code kan wel wat eenvoudiger geschreven worden.
Vermijd 'select' en 'selection'.

Even controleren op een kopie van je werkbook.

Code:
Sub HSV()
 Application.ScreenUpdating = False
   'dossiernummer als waarde wegschrijven
 With Sheets("Blad1")
     .Range("C3").Copy
     .Range("C3").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
     .Range("N5:R5").Copy
 With Workbooks("PHB.xls").Sheets("Adressen")
     .Range("B1000:F1000").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
     Application.CutCopyMode = False
 'gegevens sorteren op datum
      .Sort.SortFields.Clear
      .Sort.SortFields.Add Key:=Range( _
        "C2:C1242"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
     With .Sort
            .SetRange Range("B1:F1242")
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
          End With
         End With
       End With
    ' ThisWorkbook.Sheets("Blad1").Activate
  Application.ScreenUpdating = True
End Sub
 
Laatst bewerkt:
Harry,

Veel dank voor deze oplossing, het werkt perfect.
Er hoef nu niet meer over gesprongen te worden naar het werkboek melding omdat vanaf daar deze code werd geactiveerd.
Hij blijft nu mooi op het blad staan.

dus vele dank voor deze oplossing.
Nu nog 1 vraagje...
Hoe kan ik zorgen dat excel op de achtergrond van een ander werkboek een ander blad slecteer ?

gr,
Patrik
 
Met zoiets als:
Code:
workbooks.open "c:\map1\map2\bestandnaam.xls"
 sheets("bladnaam").activate
En sluiten kan dan als volgt.
Code:
workbooks("bestandnaam.xls").close
 
Harry,

Thanx, die snapte ik wel maar het gaat er nu om :

ik heb workbook PHB open staan ...dan open ik workbook melding waar ik dan via een knopje de macro activeer die hier boven staat..
Workbook PHB gaat dan naar sheet adressen om daar gegevens weg te schrijven daar blijft hij dan op staan...als ik dan de melding opslaat en afsluit staat workbook PHB op adressen en ik zou graag dat hij dan gelijk op de sheet index zou staan.

alvast bedankt,

Patrik
 
Er zijn verschillende manieren.

Met:
Code:
 Private Sub Workbook_Open()
  sheets("bladnaam").activate
end sub
of bij het sluiten.
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
of bij het opslaan.
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
of in de code.
Code:
sheets("bladnaam").activate
 
Harry,

Bedankt voor deze oplossingen ik ga ze testen en uitproberen .
Jij in ieder geval veel dank voor je hulp.

gr,
Patrik
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan