IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Numérotation des feuilles - réinitialisation possible ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 11
    Par défaut Numérotation des feuilles - réinitialisation possible ?
    Bonjour

    Sujet précédent en lien avec le problème présent :
    https://www.developpez.net/forums/d4...ssins-d-excel/

    J'ai le même problème, donc si qqn a une réponse je suis preneur !!
    J'utilise une macro qui crée des pages, et bien que la suppression des anciennes et la création des nouvelles marche parfaitement bien,
    il s'avère que le chiffre suivant "Feuil" dans l'appelation d'Excel ne se remet à 0.
    Heureusement, je ne crée que deux pages à la fois, ce qui fait qu'il n'en est "que" à "Feuil19"et "Feuil20"
    Mais ça me stresse de voir ces chiffres monter sans savoir comment les réinitialiser..
    Si vous ne voyez pas de quoi je veux parler, je peux fournir une capture d'écran

    Merci..

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    je ne comprends pas bien ton probleme en fait
    on est bien d'accords qu'entre chaque dessin toutes les shapes sont detruites
    alors il est ou ton soucis ???
    quand tu ajoute une shape rectangle par exemple elle s'appellera "Rectangle 1" puis "rectangle 2" puis etc.....
    tu peut tres bien aller jusqu'a rectangle 100000000000000000000000000000 le nom n'est pas un numero mais un string
    en gros tu te casse la tete pour rien tu peux non seulement laisser excel les nommer comme il l'entends
    mais tu peux faire en sorte de les "GROUPER" sous un nom "dessin1 par exemple puis dessin2 etc...
    et quand tu veux supprimer tes shapes tu supprime "dessin1" ou dessin2" etc....

    si tu les nommes pour y avoir acces afin de les dimentionner ,modifier ,placer ,sur ta feuille tu peut le faire sans en connatre le nom a chaque ajout de shapes c'est shapes(shapes.count)
    ce qui accelererait le processus de minimum 30%
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 11
    Par défaut
    Nom : probvba.png
Affichages : 875
Taille : 6,6 Ko

    Voilà une image expliquant mieux que mes mots

    Je sais que ce n'est pas gênant et que ça ne change rien, mais je m'interroge juste s'il y a une façon d'éviter qu'on atteigne "Feuil5060" un jour...

    Merci à toi d'avoir répondu

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    j'avoue que je comprends pas ce que vient faire le nombre de shapes avec le nombres de sheets et meme son nom

    qu'est ce qui t'empeche d'avoir ""Feuil5060" comme nom de feuille apart peut etre le nombre limite possible

    pour en revenir a tes shapes

    prends un fichier vierge et teste ces code
    dans le premier exemple je connais le nom de aucun des 10 shapes et pourtant il sont ciblés et regroupés en un et porte le nom de "toto"

    dans le 2d exemple je peux connaitre leur nom il sont stoker dans un tableau et je les regroupe en un et la aussi le groupe s'appelle "toto"rien ne l'empeche
    pour suprimer tes shapes (remise a zero) tu n'a plus qu'a supprimer "toto" a chaque tour

    exemple 1 10 differentes shapes formes au hasard
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test()
    'on y va en aveugle
        For a = 0 To 9
            ActiveSheet.Shapes.AddShape (1 + Round(Rnd * 100)), 10 + (30 * a), 10, 20, 20
        Next a
        ActiveSheet.Shapes.SelectAll   'si il est sensé y etre que les shapes de ton dessin on groupe en aveugle avec selectall puis groupe
        Set Group = Selection.Group
        Group.Name = "toto"
    End Sub
    exemple2 10 differentes shapes formes au hasard
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub test2()
    'ici on est pas en aveugle le tableau de shapes est syncro
        Dim tableau(10)
        For a = 0 To 9
            ActiveSheet.Shapes.AddShape (1 + Round(Rnd * 100)), 10 + (30 * a), 10, 20, 20
            'ici tu fait ce que tu veux avec ta shape
            'fill
            'position
            'etc.....
            tableau(a) = ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Name
            Debug.Print tableau(a)
        Next a
        Set Sh = ActiveSheet.Shapes.Range(tableau).Group    'Regroupe les formes dont le nom se trouve dans le tableau
        Sh.Name = "toto"    'Renomme le groupe.
    End Sub
    pour suprimer toutes tes shapes
    c'est simples
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub suprime_le_groupe()
        ActiveSheet.Shapes("toto").Delete
    End Sub
    a chaque fois c'est toujours toto que tu supprime
    bien evidement tu peux mettre une condition sur sa presence
    dois-je préciser aussi qu'avec l'exemple 2 tu peux te permettre d'avoir d'autre shapes ou object dans le meme sheet sans qu'ils soit supprimer l'ors de l'effacement de toto
    voila
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Bonjour,

    plutôt que partir sur du code bazooka, tu peux plus pragmatiquement utiliser 2 feuilles finales qui seront simplement nettoyées avant chaque traitement.

    Tu passes donc d'un processus :
    - suppression
    - suppression
    - creation
    - creation
    - remplissage
    - remplissage

    à
    - nettoyage
    - nettoyage
    - remplissage
    - remplissage

    et exit le problème d'incrémentation.
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  6. #6
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 11
    Par défaut
    Merci à vous deux !

    Du nettoyage, oh j'aime bien le concept !

    Je n'y avais même pas pensé !
    merci à toi

    Bonne fin d'après midi

  7. #7
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Vulci Voir le message
    Je sais que ce n'est pas gênant et que ça ne change rien, mais je m'interroge juste s'il y a une façon d'éviter qu'on atteigne "Feuil5060" un jour...
    Si tu crées deux feuilles par jour, Excel n'arrivera à ce chiffre que dans... 10 ans.

    Et même s'il y arrive, je ne comprends pas en quoi ça pourrait être perturbant...
    Je n'ai pas trouvé de renseignements pour savoir s'il y a une valeur limite à ce numéro mais s'il y en a une, elle doit être bien au delà de de 5060 vu que pour Excel 2013-2016, le nombre de feuilles n'est limité que par la mémoire :
    https://support.office.com/fr-fr/art...7-269d656771c3

    Donc, respire profondément, mets une musique douce et laisse ton niveau de stress descendre doucement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 29/08/2016, 14h15
  2. [XL-2010] Automatiser la numérotation des feuille a créé a partir d'un modèle !
    Par diss10 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/07/2016, 08h59
  3. Obtenir la liste des feuilles d'un fichier Excel
    Par Jean Bonnisme dans le forum Access
    Réponses: 3
    Dernier message: 15/10/2004, 10h53
  4. [CR 8.5] Numérotation des pages et rappel dans sous état
    Par Nout dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 02/09/2004, 13h43
  5. completer l'installation avec des tar.gz possible??
    Par frome dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 23/03/2004, 23h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo