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 :

Modifier mon code [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2011
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 571
    Points : 93
    Points
    93
    Par défaut Modifier mon code
    Salut le forum

    Dans le code ci-dessous, je souhaite qu'on m'aide modifier le critère sur les feuille name.
    En effet, dans mon classeur, j'ai des feuille dont le nom des onglets est alphabetique et d'autres purement numéric. je souhaite au lieu de dire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If ws.Name <> wsd.Name And ws.Name <> "MENU" And ws.Name <> "SOURCE" And ws.Name <> "TABLEAU_N-1" And ws.Name <> "TABLEAU_N" And ws.Name <> "CODES"
    qu'il ne traite que les onglets dont les noms sont purement numeric.
    comment interpreter cela?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    For Each ws In ActiveWorkbook.Worksheets
            If ws.Name <> wsd.Name And ws.Name <> "MENU" And ws.Name <> "SOURCE" And ws.Name <> "TABLEAU_N-1" And ws.Name <> "TABLEAU_N" And ws.Name <> "CODES" Then
                lastRow = ws.Cells(Rows.Count, 1).End(xlUp).Row
                lastCol = ws.Cells(1, Columns.Count).End(xlToLeft).Column
                ws.Cells(2, 1).Resize(lastRow, lastCol).Copy
                wsd.Cells(lRow, 1).PasteSpecial xlPasteFormulasAndNumberFormats
                lRow = wsd.Cells(Rows.Count, 1).End(xlUp).Row + 1
            End If
        Next
    N.B: c'est une partie du code et non l'intégralité
    Merci de me donner un coup de main.

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Utilise Isnumeric
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #3
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Bonjour capi81,

    Ce code incrémente de 1 le nom des worsheets qui sont numériques.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub verif_name()
    Dim inc As Integer
     
    For Each Ws In ActiveWorkbook.Worksheets
        If IsNumeric(Ws.Name) Then 'ici se situe la vérification
            inc = CInt(Ws.Name) + 1
            Ws.Name = inc
        End If
    Next Ws
     
    End Sub
    Cordialement,
    Kimy

    EDIT : mercatog a été plus rapide que moi !
    La logique :
    • Plus ya de gruyère, moins ya de gruyère.
    • Plus tu pédales moins vite, moins tu avances plus vite.
    Plusoyer les réponses pertinentes et n'oublier pas de résolver en fin de post !

  4. #4
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2011
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 571
    Points : 93
    Points
    93
    Par défaut
    Salut Kimy_Irec et Mercatog

    Merci pour vos contribution.
    Ne comprenant pas la signification de tout le code de Kimy, j'ai preferé copié cette partie qui fait mon affaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If IsNumeric(Ws.Name) Then 'ici se situe la vérification
    et je l'ai intégré dans mon code.
    A quoi sert l'incrémentation??
    Merci encore

  5. #5
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par capi81 Voir le message
    Salut Kimy_Irec et Mercatog
    A quoi sert l'incrémentation??
    Merci encore
    Sans avoir tout lu, cela me semble être là pour augmenter de 1, les noms de Feuilles genre Feuil1 ou Sheet1, pour éviter les plantages en cas de noms identiques.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  6. #6
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Comme quoi on s'endort sur ses lauriers en attendant une solution faite de A à Z. On oublie que c'était là un exemple (l'histoire de l'incrémentation; de surcroit non fonctionnelle vu qu'on ne peut donner à 2 feuilles d'un même classeur le même nom).

    Capi?
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  7. #7
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Bon... la prochaine fois je donnerai juste la ligne de code...

    C'était un exemple non voué à être utilisé en l'état... c'était juste une "application rapide" de ce qui était demandé... Bref...
    La logique :
    • Plus ya de gruyère, moins ya de gruyère.
    • Plus tu pédales moins vite, moins tu avances plus vite.
    Plusoyer les réponses pertinentes et n'oublier pas de résolver en fin de post !

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

Discussions similaires

  1. [MySQL] aider moi a modifier mon code
    Par tapoza dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 11/06/2011, 17h59
  2. Comment modifier le code de mon site ?
    Par car-design83 dans le forum Débuter
    Réponses: 9
    Dernier message: 16/05/2008, 13h53
  3. [Tableaux] comment doit-je modifier mon code
    Par teen6517 dans le forum Langage
    Réponses: 10
    Dernier message: 27/02/2007, 13h22
  4. Qui modifie mon code PL?
    Par flonardi dans le forum Oracle
    Réponses: 3
    Dernier message: 31/05/2006, 10h44
  5. CSS comment puis-je modifier mon code pr avoir un bord blanc
    Par pierrot10 dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 30/09/2005, 20h19

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