XL 2016 Feuille fantôme dans classeur

Phillip

XLDnaute Occasionnel
Bonjour,

J'ai finalement réussi à faire marcher mon code sur un fichier de tests et je veux le transférer sur mon vrai fichier.

Voici le bout de code qui me pose problème dès le début dans le vrai fichier (mais pas dans le fichier de tests).
VB:
For Each Fmois In ThisWorkbook.Worksheets
      If Fmois.Name = Vmoislettres Then 'Vmoislettres est "janvier"
        Worksheets(Vmoislettres).Activate
        Call noms
        Fairelessommes Fmois
       
     
       
      ElseIf Fmois.Name = VmoisprochainLettres Then 'Vmoisprochainlettres est "février"
        Worksheets(VmoisprochainLettres).Activate
        Call noms
       
     
        Fairelessommes Fmois
     
    End If
       
      Next Fmois

Il plante et sort de la sub car le premier Fmois qu'il reconnaît est "Feuill1". Or, je n'ai PAS de Feuil1 dans mon classeur, elle n'est pas masquée et si je regarde dans le projet VBA elle n'existe pas non plus (elle aurait pu être en xlsheetveryhidden).
En revanche, si j'insère une feuille en première position dans mon classeur de test effectivement ça fait planter la macro, donc c'est bien la présence d'une feuille en première position qui pose problème....

Comment supprimer cette feuil1 fantôme, ou pourquoi apparaît-elle ?

PS : je précise que si j'insère la ligne Worksheets(1).Activate, ça m'active bien la feuille janvier, ma première feuille sur laquelle je veux travailler !

merci de votre aide

Cordialement

Phillip
 
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Pardon, mais ton explication ne me semble pas trop tenir la route...

Juste un exemple : "Il plante et sort de la sub car le premier Fmois qu'il reconnaît est "Feuill1"." ne veut pas dire grand chose.
- Qui reconnait la feuille "Feuill1" ?
- Que veut dire "reconnaître" une feuille ?
- Comment sais-tu que cette feuille est "reconnue" ?
- Etc.


VB:
For Each Fmois In ThisWorkbook.Worksheets

    If Fmois.Name = Vmoislettres Then 'Vmoislettres est "janvier"
        Worksheets(Vmoislettres).Activate
        Call noms
        Fairelessommes Fmois
    ElseIf Fmois.Name = VmoisprochainLettres Then 'Vmoisprochainlettres est "février"
        Worksheets(VmoisprochainLettres).Activate
        Call noms
        Fairelessommes Fmois
    End If

Next Fmois
 

Phillip

XLDnaute Occasionnel
Si, mon classeur a bien plusieurs feuilles, dont janvier et février (et d'autres), mais PAS de feuill1. Le seul truc que je vois c'est cette feuill1 dans mon personal.xlsb et qui poserait problème (mais je ne peux pas la supprimer).

PS : C'est bien cette feuille qui pose problème, car je l'ai renommée et c'est bien elle qui apparaît quand je survole mon code...
 
Dernière édition:

Phillip

XLDnaute Occasionnel
Non, vu d'ici, ton classeur n'a qu'une seule feuille, et elle se nomme "Feuil1".
C'est tout ce que j'ai à dire pour l'instant. :(
Merci du temps passé...je ne vois pas trop comment tu peux voir que mon classeur n'a qu'une feuille mais bon...Je travaille sur 2023.xlsm qui a plusieurs feuilles avec des macros dans personal.xlsb....2023 a plusieurs feuilles et personal.xlsb a cette feuille (que j'ai renommée modulo) qui pose problème...
 

Pièces jointes

  • Captureexcel.PNG
    Captureexcel.PNG
    12.8 KB · Affichages: 12

TooFatBoy

XLDnaute Barbatruc
je ne vois pas trop comment tu peux voir que mon classeur n'a qu'une feuille mais bon...
C'est bien ce que je voulais te faire comprendre. ;)


Je travaille sur 2023.xlsm qui a plusieurs feuilles avec des macros dans personal.xlsb
Je l'avais un peu deviné. ;)
Et c'est bien là ton problème.
Comprends-tu ?

2023 a plusieurs feuilles et personal.xlsb a cette feuille (que j'ai renommée modulo) qui pose problème...
Ce n'est pas cette feuille qui pose problème. C'est le code de ta macro. ;)
Est-ce plus clair ?
 

TooFatBoy

XLDnaute Barbatruc
Dis-moi si je me trompe :
- ta macro se trouve dans le classeur PERSONNAL,
- ta macro utilise ThisWorkBook,
- donc ta macro travaille dans le classeur PERSONNAL qui n'a qu'une seule feuille.
J'ai bon ?

Si j'ai bon, alors il n'y a aucun fantôme dans le coup. ;)


Pour info :
- ThisWorkbook fait référence au classeur dans lequel se trouve l'instruction ThisWorkbook rencontrée.
- ActiveWorkbook fait référence au classeur qui est actif quand est rencontrée l'instruction ActiveWorbook.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 724
Messages
2 081 937
Membres
101 844
dernier inscrit
pktla