Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: Werkblad aanspreken  (gelezen 8012 keer)

0 leden en 1 gast bekijken dit topic.

Offline cladon

  • Volledig lid
  • **
  • Berichten: 246
  • Geslacht: Man
Werkblad aanspreken
« Gepost op: 14 augustus 2006, 15:02:09 »
Standaard zijn er in een werkmap van excel 3 werkbladen met de naam Blad1, blad2 en blad3. Dit zijn ook de namen die de gebruiker van het bestand ziet. In de VBA- editor kan je via de eigenschappen van ieder blad de naam veranderen naar v1 voor blad1, v2 voor blad2 enzo verder.

Bestaat er nu een rechtstreekse methode in vba om Blad2 te activeren als de gebuiker staat op BLAD1.

Ik weet dat je dit kan doen via Sheets("blad2").Activate
maar dan kan de gebruiker indien gewenst de naam BLAD2 niet veranderen naar een andere willekeurige naam.

Dus de vraag is is eigenlijk of je een werkblad ook kan aanspreken op zijn naam die is ingesteld bij de eigenschappen in de vba-omgeving.
Windows 10 Home   NLD 64bit,
Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz 3401
P8B75-M LE
Intel(R) HD Graphics 4000 3072MB 1920 x 1080
VIA HD Audio
C:\ NTFS 237,25GB 135,35GB 15 293MB
AV: Kaspersky
FW: Windows 10

Offline spyder

  • Ambassadeur
  • *****
  • Berichten: 5.265
  • PC probleem zit meestal tussen scherm en rugleun
Re:Werkblad aanspreken
« Reactie #1 Gepost op: 14 augustus 2006, 18:40:37 »
Hoi Cladon,

Als de volgorde van de werkbladen niet verplaatst kunnen worden, kan je gebruik maken van bvb "sheets(2).activate".
In dit geval zal het tweede blad, onafhankelijk van de naam, geactiveerd worden.

groetjes
Windows 7 Ultimate Unknow NLD
Intel(R) Core(TM) i7 CPU         870  @ 2.93GHz 2934
P7P55D-E PRO
NVIDIA GeForce GTX 470 1280MB 1680 x 1050
HD 1 : INTEL SSDSA2M080G2GC (80GB)
HD 2 : ST31500341AS (1,5TB)
HD 3 : ST320006 41AS (2TB)
browser: Maxthon  mail:Thunderbird AV: Bitdefender
Scarlet user

Offline cladon

  • Volledig lid
  • **
  • Berichten: 246
  • Geslacht: Man
Re:Werkblad aanspreken
« Reactie #2 Gepost op: 15 augustus 2006, 00:39:43 »
Hallo spyder

Bedankt voor je antwoord.  Dit commando is de tegenhanger van Sheets("blad2").Activate. Probleem blijft nog altijd bestaan ,je weet niet wat de gebruiker doet met de volgorde van de werkbladen. Daarom dacht ik aan het werken via de property van het werkblad waar je als programmeur kan vastleggen wat de 'interne' naam van een werkblad is. Dus als je dan rechtstreeks kan verwijzen naar de interne naam van een werkblad dan kan er zich nooit geen probleem voordoen.

Windows 10 Home   NLD 64bit,
Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz 3401
P8B75-M LE
Intel(R) HD Graphics 4000 3072MB 1920 x 1080
VIA HD Audio
C:\ NTFS 237,25GB 135,35GB 15 293MB
AV: Kaspersky
FW: Windows 10

Offline WG

  • Ervaren lid
  • ***
  • Berichten: 366
  • Geslacht: Man
  • http://www.wimgielis.be
Re:Werkblad aanspreken
« Reactie #3 Gepost op: 15 augustus 2006, 01:35:17 »
Hello

Interessant probleem.

Heb je er trouwens al aan gedacht / Wist je dat die "ingebouwde" namen ook veranderen? Na (nogal wat) kopiëren kan Blad1 bv. veranderen in Blad11 of Blad111 of meer.

Wigi
Gelieve uw systeemgegevens in te vullen. Klik HIER voor meer informatie.

Offline cladon

  • Volledig lid
  • **
  • Berichten: 246
  • Geslacht: Man
Re:Werkblad aanspreken
« Reactie #4 Gepost op: 15 augustus 2006, 16:40:37 »
WG Dit is me nog nooit opgevallen. Altijd interessant om te weten. De vraag is dan ook of de property onder vba zich ook mee aanpast.

Trouwens WG bedoel je onder ingebouwde namen de namen die zichtbaar zijn voor de gebruiker of meer de vba-namen.
Windows 10 Home   NLD 64bit,
Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz 3401
P8B75-M LE
Intel(R) HD Graphics 4000 3072MB 1920 x 1080
VIA HD Audio
C:\ NTFS 237,25GB 135,35GB 15 293MB
AV: Kaspersky
FW: Windows 10

Offline WG

  • Ervaren lid
  • ***
  • Berichten: 366
  • Geslacht: Man
  • http://www.wimgielis.be
Re:Werkblad aanspreken
« Reactie #5 Gepost op: 15 augustus 2006, 19:34:35 »
Gelieve uw systeemgegevens in te vullen. Klik HIER voor meer informatie.

Offline cladon

  • Volledig lid
  • **
  • Berichten: 246
  • Geslacht: Man
Re:Werkblad aanspreken
« Reactie #6 Gepost op: 15 augustus 2006, 19:53:11 »
Ik ga de code eens bestuderen en bekijken of ik op basis ervan kan opvragen wat de vba-namen zijn van de werkbladen.
Windows 10 Home   NLD 64bit,
Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz 3401
P8B75-M LE
Intel(R) HD Graphics 4000 3072MB 1920 x 1080
VIA HD Audio
C:\ NTFS 237,25GB 135,35GB 15 293MB
AV: Kaspersky
FW: Windows 10

Offline WG

  • Ervaren lid
  • ***
  • Berichten: 366
  • Geslacht: Man
  • http://www.wimgielis.be
Re:Werkblad aanspreken
« Reactie #7 Gepost op: 15 augustus 2006, 20:30:06 »
OK.

Run bv. deze code:

Sub vbanames()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
    On Error Resume Next
    MsgBox ws.Parent.VBProject.VBComponents(ws.CodeName).Properties("_CodeName") & ":" & vbTab _
        & ws.Name, , "Overzicht van de bladnamen."
    On Error GoTo 0
Next ws
End Sub

Wigi
Gelieve uw systeemgegevens in te vullen. Klik HIER voor meer informatie.

Offline cladon

  • Volledig lid
  • **
  • Berichten: 246
  • Geslacht: Man
Re:Werkblad aanspreken
« Reactie #8 Gepost op: 15 augustus 2006, 23:15:46 »
Je bent me voor geweest - alvast bedankt WG.
Windows 10 Home   NLD 64bit,
Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz 3401
P8B75-M LE
Intel(R) HD Graphics 4000 3072MB 1920 x 1080
VIA HD Audio
C:\ NTFS 237,25GB 135,35GB 15 293MB
AV: Kaspersky
FW: Windows 10

Offline cladon

  • Volledig lid
  • **
  • Berichten: 246
  • Geslacht: Man
Re: Werkblad aanspreken
« Reactie #9 Gepost op: 10 februari 2007, 23:32:30 »
WG ik heb je code even aangepast


   
Set wbDum = ActiveWorkbook
For Each ws In ActiveWorkbook.Worksheets
         On Error Resume Next
         If ws.Parent.VBProject.VBComponents(ws.CodeName).Properties("_CodeName") = "W1" Then
 '                         
 ' Hoe kan ik nu het werk blad met internenaam w1 zichtbaar maken (het staat verborgen)?
'
          End If
          On Error GoTo 0
  Next ws

De vraag is nu, als het programma een werkblad tegenkomt met de "interne" naam w1, hoe kan ik dat werkblad dan zichtbaar maken. (staat verborgen)
Windows 10 Home   NLD 64bit,
Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz 3401
P8B75-M LE
Intel(R) HD Graphics 4000 3072MB 1920 x 1080
VIA HD Audio
C:\ NTFS 237,25GB 135,35GB 15 293MB
AV: Kaspersky
FW: Windows 10

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.284
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Werkblad aanspreken
« Reactie #10 Gepost op: 11 februari 2007, 20:38:03 »
Cladon,
Citaat van: Cladon
WG ik heb je code even aangepast
Ik ben bang dat Wigi niet meer werkzaam is op deze site. Je hulp zal dus van andere oplossers van OPLOSSING.BE moeten komen...  ;)

Ik doe een poging voor je...  ;D ;D Nou moet ik er wel bij vermelden dat ik niet zo een antwoord voor je heb. Maar kan je het niet gewoon met Worksheets("w1").Visible = Trueoplossen?
Of eventueel om alle sheets zichtbaar te maken met For Each sh In Sheets
 sh.Visible = True
Next sh
?

Het viel me trouwens op dat je in je aangepaste code achter 'VBComponents' een haakje vergeten bent.

Groet, Leo
______________________________

Groet, Leo

Offline cladon

  • Volledig lid
  • **
  • Berichten: 246
  • Geslacht: Man
Re: Werkblad aanspreken
« Reactie #11 Gepost op: 11 februari 2007, 22:56:53 »
Hallo Redhead

Foutje ondertussen aangepast. Je voorstel is de methode die ik normaal ook gebruik.  Maar in Worksheets("w1").Visible = True is "w1" de zichtbare naam die de gebruiker ziet als hij gewoon het excelbestand zou openen.

Intern (in de vba-editor) heeft ieder werkblad ook een interne naam. En ik wil dus die interne naam aanspreken. Reden de gebruiker kan dus de zichtbare naam altijd aanpassen en dan werkt het commando Worksheets("w1").Visible = True
 niet meer.


Windows 10 Home   NLD 64bit,
Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz 3401
P8B75-M LE
Intel(R) HD Graphics 4000 3072MB 1920 x 1080
VIA HD Audio
C:\ NTFS 237,25GB 135,35GB 15 293MB
AV: Kaspersky
FW: Windows 10

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.284
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Werkblad aanspreken
« Reactie #12 Gepost op: 27 februari 2007, 21:13:12 »
Cladon, Dit probleem van je liet me toch niet los... :-X Niet dat ik er continu mee bezig was, maar bij toeval kwam ik al surfend op  deze URL uit... En je lacht je dus rot als je ziet hoe simpel het leven kan zijn!  ;D ;D ;D

Stel dat je verborgen sheet als CodeName 'Sheet1' heeft. Dan geef je het volgende op:Sheet1.Visible = True En om de boel weer te verbergen zet je de waarde weer op False... In je VBA-code kan je dus rechtstreeks werken met de CodeName van de worksheet properties!

Ben je hier mee geholpen?  ???

Groet, Leo
______________________________

Groet, Leo

Offline cladon

  • Volledig lid
  • **
  • Berichten: 246
  • Geslacht: Man
Re: Werkblad aanspreken
« Reactie #13 Gepost op: 28 februari 2007, 08:49:36 »
Dit zou het toppunt zijn. Ik probeer het vandaag in mijn code. Nu dat ik je voorbeeldje zie herinner ik mij dat ik het zo al ooit eens gebruikt heb.

Kijk je nog eens naar je URL?

Gewoon uit intresse (voor het commando) zou het leuk zijn ook het volgende command aan de praat te krijgen ws.Parent.VBProject.VBComponents(ws.CodeName).Properties("_CodeName") = "W1" ook hier heb ik intensief gezocht op het internet mar ik kan niets terug vinden



Windows 10 Home   NLD 64bit,
Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz 3401
P8B75-M LE
Intel(R) HD Graphics 4000 3072MB 1920 x 1080
VIA HD Audio
C:\ NTFS 237,25GB 135,35GB 15 293MB
AV: Kaspersky
FW: Windows 10

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.284
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Werkblad aanspreken
« Reactie #14 Gepost op: 28 februari 2007, 10:17:34 »
Cladon,
Citaat
Kijk je nog eens naar je URL?
Nou zou die het wel moeten doen... (sorry, foutje... ;) De link in het orginele bericht doet het nu ook goed!)
Citaat
Gewoon uit intresse (voor het commando) zou het leuk zijn ook het volgende command aan de praat te krijgen
Wat wil je bereiken met die coderegel? (bij mij gebeurde er óók niets!) Het lijkt mij de snelste weg om - in het geval dat je een andere 'interne' CodeName wilt dan 'Sheet1' , 'Sheet2' enzovoorts - deze in je VBA-properties-window-worksheetproperty '(Name)' handmatig op te geven, ipv dit via een coderegel te laten gebeuren....
Deze coderegel gaat trouwens echt VER boven mijn petje.... Dus wil ik daar in mijn huidig kennisstadium eigenlijk geen tijd aan besteden... ;D Mocht jij 'm ooit aan de praat krijgen EN begrijpen, dan hou ik me aanbevolen om de oplossing geleerd te krijgen. ;)

Groet, Leo
______________________________

Groet, Leo

 


www.combell.com