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 :

Nombre de colonnes [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Retraité actif passionné
    Inscrit en
    Janvier 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité actif passionné

    Informations forums :
    Inscription : Janvier 2011
    Messages : 78
    Par défaut Nombre de colonnes
    Bonjour,

    Pour trouver mon nombre de colonnes le code ci-dessous fonctionnait tès bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vNbCol = vWst.Cells(1, Columns.Count).End(xlToLeft).Column
    et hier sans que cette partie du programme, le classeur et les feuilles utilisées n'aient subi de modification la procédure plantait sur cette ligne avec Msgbox "erreur d'automation"
    J'ai utilisé successivement 2 autres méthodes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Dim vNbCol As Integer
    vNbCol = 0
        Do While vWst.Cells(1, vNbCol + 1) <> ""
            vNbCol = vNbCol + 1
        Loop
     
    puis,
     
    vNbCol = vWst.UsedRange.Columns.Count
    qui on fonctionné parfaitement bien. Je les ai remplacées par la formule initiale et tout est redevenu nickel.

    Les questions sont :
    Qu'a-t-il bien pu se produire ?
    Est ce que la formule en cause n'est pas fiable ?
    Sachant que les feuilles sont structurées comme une base de données, et que la ligne 1 contient les noms de champ (26 maxi), la méthode Do while ne serait-elle pas la plus fiable ?

    Merci

  2. #2
    Expert éminent 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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vNbCol = vWst.Cells(1, vWst.Columns.Count).End(xlToLeft).Column

  3. #3
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour,

    Tu ne comptes pas la même chose avec chacun de tes codes.

    Avec vWst.Cells(1, vWst.Columns.Count).End(xlToLeft).Column , tu relèves le numéro de la première colonne renseignée en partant de l’extrémité droite de la feuille et en allant vers la gauche.
    En clair, tu obtiens le numéro de la dernière colonne renseignée.

    Avec la boucle Do While, tu comptes le nombre de cellules renseignées, mais ce comptage s’arrête dès qu’une cellule vide est rencontrée. Si tu n’as aucune cellule vide dans ta plage, le résultat sera le même.

    Avec UsedRange.Columns.Count, tu comptes le nombre de colonnes de la plage utilisée. Si ta plage n’est pas décalée, le résultat sera le même. Par contre, si la première colonne est vide par exemple, elle ne sera pas comptée.
    Au final, si les 26 premières cellules de ta ligne 1 sont renseignées, tu obtiendras le même résultat avec les 3 codes.

    Cordialement.

  4. #4
    Membre confirmé
    Homme Profil pro
    Retraité actif passionné
    Inscrit en
    Janvier 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité actif passionné

    Informations forums :
    Inscription : Janvier 2011
    Messages : 78
    Par défaut
    Merci beaucoup à tous les deux.
    Cordialement
    Daniel

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

Discussions similaires

  1. [T-SQL] Connaître le nombre de colonnes retourner par une PS
    Par NeoMan dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 28/12/2005, 11h30
  2. Nombre de colonnes avec le nom de la table
    Par benji41 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 10/07/2005, 20h17
  3. [débutant] nombre de colonne dan sun fichier csv
    Par mandagor dans le forum C++
    Réponses: 18
    Dernier message: 15/06/2005, 15h42
  4. [JTextArea]changer dynamiquement le nombre de colonnes
    Par MrDuChnok dans le forum Composants
    Réponses: 9
    Dernier message: 27/04/2004, 13h31
  5. [RDB$PRIMARY] Nombre de colonnes
    Par Lucien dans le forum InterBase
    Réponses: 4
    Dernier message: 17/01/2004, 12h55

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