Relatieve verwijzing werkblad VBA versus Excel nederlandse syntax

Status
Niet open voor verdere reacties.

Vaurien

Gebruiker
Lid geworden
13 apr 2015
Berichten
38
Beste Forum leden,

In VBA taal heb je de mogelijkheid een waarde in een werkblad op te halen zonder de naam van dat werkblad te gebruiken,
(dit is nodig omdat er telkens een nieuw werkblad gemaakt wordt met een nieuwe naam.
Terwijl ik telkens uit dat laatste werkblad Blad(4) een waarde voor het volgende werkblad wil gebruiken.)

ActiveWorkbook.Sheets(Array(4).Select"
Range("Z1").Select.

In Excel hebben de werkbladen ook een nummer op de achtergrond.
A; Kan ik dat gebruiken?
B; Wat is de syntax om de waarde in Blad(4) cel Z1 op te halen.
C; Offset werkt in kolommen en rijen, maar werkt dat eventueel ook met de werkbladen, 1 werkblad naar links of 2 werkbladen naar rechts


Een totaal andere aanpak zou kunnen zijn dat ik het werkblad oproep met dezelfde formule als waarmee ik dit Blad heb herbenoemd.
Maar dit gaat alleen in modules in VBA en ik wil in de Excel cel eigenlijk een formule die dit doet buiten de modules om.

Formule voor deze herbenoeming van het werkblad, verkregen via dit geweldige forum is als volgt.

ActiveWorkbook.Worksheets("invullijst (2)").Name = "P" & Sheets("invullijst").Range("K1") & "-WK") & Sheets("invullijst("M1")

Hoe wordt hier de syntax, als ik in dit werkblad de cel Z1 wil ophalen dan precies, waar de accolades en haakjes etc.

Bij voorbaat dank.
PS Ik merk dat men erg graag Excel voorbeelden ziet, maar het programma is te groot.
En een voorbeeld maken is erg ingewikkeld, misschien nog gecompliceerder dan de vraag.
 
Laatst bewerkt:
Een antwoord geven is nog ingewikkelder dan het maken van een voorbeeldbestand.
 
Dank U voor uw snelle reactie en de terecht wijzing.

De vraag cq probleemstelling is toch wel duidelijk omschreven, misschien zijn er anderen die hier wel iets mee kunnen.

Vraag A is ja of nee
Vraag B is syntax
Vraag c gaat over offset.

Hoe wilt U dat allemaal in een voorbeeld hebben
 
Laatst bewerkt:
A; Kan ik dat gebruiken?
Je bedoelt Index? Als in Worksheets(1).cells(1) ? Kun je gebruiken, als je geen Bladen verwijdert en de volgorde niet aanpast.
Stel je hebt drie sheets Sheet1, Sheet2 en Sheet3 in deze volgorde in de userinterface staan. Sheet3.Index is nu 3.
Verwijder Sheet2. Sheet3.Index is nu 2.
Sleep Sheet3 vóór Sheet1. Sheet3.Index is nu 1.
B; Wat is de syntax om de waarde in Blad(4) cel Z1 op te halen.
Nog relevant?
C; Offset werkt in kolommen en rijen, maar werkt dat eventueel ook met de werkbladen, 1 werkblad naar links of 2 werkbladen naar rechts
Misschien kun je iets met de eigenschappen Next en Previous van het Worksheet. Speel hetzelfde spel na als onder 1 om dat uit te proberen.

Je hebt het steeds over Werkbladen maar gebruikt de collectie Sheets. Charts zijn ook Sheets. Voor alleen werkbladen zou ik altijd Worksheets gebruiken.
 
Ik zal de vraag opnieuw stellen.

Wat is het Nederlandstalige Excel commando voor het VBA commando
Sheets(Array(4).Select
Range("Z1").select

='Blad4'!Z1, werkt niet, omdat dat blad niet bestaat en gaat zoeken op HD
='Sheet(4)'!Z1 idem

Het gaat mij alleen maar om de juiste omschrijving van de Excel formule
Bij voorbaat dank.
 
Ben je nu opzoek naar een VBA oplossing of wil je iets dmv formules? Voor VBA bestaan geen Nederlandse varianten.

Het blijft natuurlijk enorm complex om even een voorbeeldje te maken. In het voorbeeldje staat de tab 'Hoofdblad' in D5 staat de waarde van Z1 uit de laatste tab. Verwijder bv tab '5' of voeg en nieuwe toe en geef deze bv de naam '6' en vul wat in Z1 in.

Dus zoiets?
 

Bijlagen

  • Vaurien.xlsx
    10,5 KB · Weergaven: 59
Ik doe ook maar een duit in het zakje.
Code:
msgbox sheets(4).range("Z1").value
het laatste blad in je werkboek is:
Code:
msgbox sheets(sheets.count).name
Offset voor een werkblad terug is er niet.
Code:
sheets(sheets.count -1) is je voorlaatste blad.
 
Lekker duidelijk.
Je zit dan in de verkeerde sectie.
Dit is de sectie Visual Basic for Applications (VBA).
 
Ja maar bij excel weten ze het vba alternatief niet.
Ik neem toch aan dat een vba specialist ook alles of veel van excel weet.
Het werkt toch samen?
Ik heb dit nog eens aangedikt omdat mijn vraag niet begrepen werd.
Kijk nog eens bij

"Ik zal mijn vraag nog eens opnieuw stellen"
 
Laatst bewerkt:
Wat is het Nederlandstalige Excel commando voor het VBA commando
Sheets(Array(4).Select
Range("Z1").select
Het gaat mij alleen maar om de juiste omschrijving van de Excel formule.

Er zijn geen formules waarmee je een Sheet of een Range kunt selecteren. Dat kan alleen met vba of met de hand.
 
Maak een hyperlink in de cel die je dan laat verwijzen naar een ander tabblad.
 
Ik heb het al op een andere manier opgelost.
Bedank voor de intentie en aandacht.
 
En hoe luidt die andere manier.
Kan erg handig zijn voor zoekende forumgebruikers, en voor ons misschien ook.
 
De moeilijkheid zit in het feit dat de speelavonden van een klaverjasseizoen niet datum + 7 is.
Daarom is er een lijst waar de speelavonden in staan.
Het seizoen van totaal 36 weken is op gesplitst in 6 periode van 6 weken, waar expliciet mee gewerkt wordt op de print-outs, het ziet er dan zo uit, P3-WK4 bijvoorbeeld.
Deze lijst heeft nu een teller in de eerste kolom met de speelweeknummers.
In de invullijst wordt nu met een formule het echte weeknummer gemaakt ( (3-1)x6 + 4 ) = 16
Dan wordt een werkblad kopie gemaak waar alles waarde value wordt gemaakt.
Deze waarde van de teller "16" wordt weer gekopieerd naar het originele invullijst in een cel.
Deze waarde uit die cel +1 = 17 wordt gebruikt als verticaal zoek criteria in de week,periode,week,datum lijst
Zodat nu de datum de periode en het WK nummer van de eerst volgende speelavond automatisch ingevuld zijn. Bijvoorbeeld datum 3-11-2015 en Periode 3 en WK 5
Het kopie werkblad invullijst (2) is na alle actie hernoemd in P3-WK4
De invullijst is dan weer leeg om de speeluitslagen opnieuw ingevuld te worden.
De totalisering van begin en eindstanden heeft ook plaats gevonden.
Ik hoop dat het een beetje duidelijk is
Leuker kan ik het niet maken.
Maar het werk goed en dat is het belangrijkst.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan