Help!

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

Hulp bij posten

Recente topics

Auteur Topic: Naam werkblad (of deel ervan) in cel  (gelezen 7412 keer)

0 leden en 1 gast bekijken dit topic.

Offline snoopy

  • Lid
  • *
  • Berichten: 97
  • Oplossing.be
Naam werkblad (of deel ervan) in cel
« Gepost op: 20 januari 2007, 18:41:48 »
Hej oplossers,

Ik heb een excel workbook met verschillende werkbladen.
Mijn eerste werkblad noemt 'Blad 1 (1)'.  Standaard als je dit werkblad kopieert, krijgt het nieuwe werkblad de naam 'Blad 1 (2)', 'Blad 1 (3)',....  

Daar ik elk werkblad telkens kopieer, worden formules en tekst ook mee gekopieerd, wat goed is.  Eén bepaalde cel bevat volgende formule:
=ALS(G12=0;"nummer: ";"nummer: " & DEEL(CEL("bestandsnaam");VIND.SPEC("(";CEL("bestandsnaam"))+1;VIND.SPEC(")";CEL("bestandsnaam"))-VIND.SPEC("(";CEL("bestandsnaam"))-1))
Deze formule geeft als resultaat:
 - als cel G12 = 0 of leeg is wordt de tekst 'nummer: ' getoond in die cel
 - als cel g12 <> 0 of niet leeg, dan wil ik dat de tekst 'nummer: ' gevolgd wordt door het cijfer dat tussen haakjes staat in de bladnaam  (dus 'nummer: 1' of 'nummer: 2' voor het 2de werkblad,...)

Mijn formule lijkt correct, maar toch niet 100%.  Als ik op blad 1 tekst ingeef in cel G12, wordt die ene cel met formule 'nummer: 1'.

Vervolgens geef ik op blad 2 in cel G12 ook tekst in.  Op blad 2 is het resultaat van mijn formule: 'nummer: 2' wat ook correct is

Maar als ik terug navigeer naar mijn eerste werkblad, zie ik dat het resultaat van diezelfde formule ook gewijzigd is naar 'nummer: 2', wat niet de bedoeling is.  :( Op 'Blad 1 (1) zou dus de tekst 'nummer: 1' moeten blijven staan.

Helaas zie ik niets mis met mijn formule.  Misschien zien jullie iets, of weten jullie een andere manier hoe ik een deel van de naam van het betreffende werkblad in een cel kan tonen?

Alvast bedankt!


snoopy
Asus Notebook F7F Series, Windows Vista Home Premium 32bit, Office 2003, Adsl

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.284
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re:Naam werkblad (of deel ervan) in cel
« Reactie #1 Gepost op: 20 januari 2007, 22:43:26 »
Snoopy, ik vind je formule heeeeel inventief! Maar je probeert nu via de functie Cell (cel) iets met de FileName (bestandsnaam) te doen. En daar zit 'm net de kneep!
Zet maar 'ns in een nieuw werkboek (wel eerst ff opslaan, anders loopt de functie helemaal mis) de functie =Cell("FileName") (=cel("bestandsnaam")). Copier dan je blad zoals je dat gewend bent. Je zal dan zien dat de bestandsnaam het laatst toegevoegde blad aan de bestandsnaam koppelt.

Ik heb een functie voor je geschreven die uitgaat van de bladnaam zelf... Je moet trouwens wel op F9 drukken of een getal oid invoeren, want er moet een 'calculate' op het blad plaatsvinden.
Function BladNaam(Cel)
'Deze formule geeft als resultaat:
'- als cel G12 = 0 of leeg is wordt de tekst 'nummer: ' getoond in die cel
'- als cel g12 <> 0 of niet leeg, dan wil ik dat de tekst 'nummer: ' gevolgd _
   wordt door het cijfer dat tussen haakjes staat in de bladnaam  (dus 'nummer: 1' _
   of 'nummer: 2' voor het 2de werkblad,...)
Dim TabNm As String
TabNm = ActiveCell.Worksheet.Name
   
    If InStr(TabNm, "(") = 0 Then
        BladNaam = "#BladNummer?"
        Exit Function
    End If
   
        Select Case Cel.Value
            Case "", 0
                BladNaam = "nummer:"
            Case Else
                BladNaam = "nummer: " & Mid(TabNm, InStr(TabNm, "(") + 1, (InStr(TabNm, ")") - 1) - InStr(TabNm, "("))
        End Select

End Function
Kan je hier iets mee? O ja, de functie heet BladNaam(). Tussen de haakjes geef je je cel op die je wilt testen (in jouw geval dus G12)

Groet, Leo

ps. in een later moment bedacht ik me dat als er géén getal tussen haakjes staat, er dus óók niets te tonen valt. Dit resulteert dan in een foutmelding (#Value). Die heb ik afgevangen door dan #BladNummer? te tonen... ;D
OK?  ???
______________________________

Groet, Leo

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.284
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Naam werkblad (of deel ervan) in cel
« Reactie #2 Gepost op: 21 januari 2007, 13:16:05 »
Snoopy, tja.... en dan ben je nog ff aant kijken naar je zojuist gemaakte functie.... En dan zie je dat tie ook niet optimaal werkt  :( :( :(  (hij doet het dus wel, maar niet naar mijn tevredenheid :'()

Bij het nadenken over een betere oplossing snapte ik niet helemaal waarom je het tonen van het nummer laat afhangen van de waarde die je in cel G12 moet invullen. Als je een copie van een sheet maakt zal je toch altijd een nieuw nummer moeten tonen? In dat geval zijn het 2 regeltjes VBA...
Toon je trouwens die cel met 'nummer:' slechts in 1 cel op een sheet, of toon je 'm vaker? Of reken je er misschien zelfs mee in een formule???  ???

Affijn, ik heb een voorbeeld workbook voor je gemaakt met een button waarmee het copieren van een sheet automatisch gaat en waarbij de sheet automatisch aan het einde van je sheets komt te staan. Op het moment dat de nieuwe sheet is aangemaakt wordt de cel G12 geleegd. Als je daarna een waarde invoert in cel G12 zal via het Worksheet_Change event het nummer uit de gecopieerde sheet gehaald worden en in je cel geplaatst. Je moet trouwens wel in de code de goede DoelCel (= een constante aan de bovenkant van de sheetmodule) opgeven (dat is de cel waarin je het woord 'nummer' en het getal verwacht: ik heb nu ff voor cel H12 gekozen).

Kan je hier iets mee?

Groet, Leo
______________________________

Groet, Leo

Offline snoopy

  • Lid
  • *
  • Berichten: 97
  • Oplossing.be
Re: Naam werkblad (of deel ervan) in cel
« Reactie #3 Gepost op: 21 januari 2007, 14:56:46 »
Bedankt voor je snelle reactie!

Ik was jou functie nog aan het testen en inderdaad, ook ik ben nog niet helemaal tevreden :-[  :P

Het enige wat misloopt, volgens mij, is hetvolgende:
Als je gewoon tekst ingeeft (bv 'Blah') ipv een getal of de cel leeg te laten, dan loopt jou functie vast op volgende regel:
Select Case Cel.Valueen het resultaat is dan '#waarde' :(
Volgens mij is jou functie er niet veraf :)  (maar VBA, dat is voor mij weeral een tijd geleden  ???)

Mijn doel was om het zo eenvoudig mogelijk te houden :)  Vandaar dat ik eerst dacht aan een simpele functie in excel  :P (die er een beetje complex uitziet  :-[  En pas daarna zelf een functie schrijven, indien via bestaande excel-functies mijn doel niet kan bereikt worden :)

Ik zal nog eens proberen om uit te leggen wat ik wil bereiken:
Hou even geen rekening met die cel G12:
Dan wil ik gewoon in een specifieke cel de tekst 'nummer: ' gevolgd door het getal, dat tussen de haakjes staat in de naam van het werkblad. Dus voor 'Blad 1 (2)' wil ik in die cel de tekst 'nummer: 2'

Als ik een werkblad kopieer wordt dit automatisch 'Blad 1 (3)' en wil ik dus dat die cel A1 de tekst 'nummer: 3' bevat. Maar :P het kan gebeuren dat ik zelf de naam van het werkblad wijzig naar bijvoorbeeld 'Blad 1 (4)'.  Dan wil ik dat de cel A1 automatisch de tekst 'nummer: 4' toont.

Die cel G12 is enkel een bijkomende conditie: énkel als er in deze cel iets werd ingetypt (een cijfer of tekst) wil ik dat die index er wordt aan toegevoegd, anders niet en toon je gewoon de tekst 'nummer: '  :)

groetjes,

Isabel
Asus Notebook F7F Series, Windows Vista Home Premium 32bit, Office 2003, Adsl

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.284
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Naam werkblad (of deel ervan) in cel
« Reactie #4 Gepost op: 21 januari 2007, 15:04:27 »
Snoopy, heb je dan iets aan mijn toegevoegde worksheet in de reactie eerder vandaag? Dat beantwoord volgens mij aardig je vraag... ;D

Groet, Leo
______________________________

Groet, Leo

Offline snoopy

  • Lid
  • *
  • Berichten: 97
  • Oplossing.be
Re: Naam werkblad (of deel ervan) in cel
« Reactie #5 Gepost op: 21 januari 2007, 15:17:19 »
Ik wist dat die vraag ging komen, maar ik wou eerst even kijken of ik jou eerste functie niet kon aanpassen, aangezien die al vrij dicht in de buurt zat  :P

En heb net gevonden dat als je volgende
Select Case Cel.Valuevervangt door
Select Case Cel.Textdan ben ik ook al heeeel tevreden  :P

En bedankt voor het workbook-voorbeeld, ook dat is een mogelijkheid  :) 

Update: volgend heb ik ook nog gewijzigd van
TabNm = ActiveCell.Worksheet.Namenaar
TabNm = Cel.Worksheet.Name
Bedankt!

snoopy
Asus Notebook F7F Series, Windows Vista Home Premium 32bit, Office 2003, Adsl

 


www.combell.com