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 :

Meme methode pour compter les colonnes resultats totalement differents [XL-2013]


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
    Ingenieur Securite
    Inscrit en
    Mai 2012
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingenieur Securite
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 97
    Par défaut Meme methode pour compter les colonnes resultats totalement differents
    Bonjour les programmeurs,

    Pour trouver la derniere colonne vide, j'utilise, pour 2 onglets differents, la meme methode (Columns.Count ....)
    Cependant le premier comptage (nb_columns1) j'arrive au resultat desire (55 colones comptees pour 55 dans mon tableau), par contre le second (nb_columns2) me donne la valeur "1" alors que mon tableau comporte 21 colonnes.

    Quelqu'un a une idee et/ou solution pour fixer ce probleme?

    NB: Cette operation se realise depuis un userform. Doublement verifier que sur ma 2nde feuille les cellules A1 a U1 ne sont pas vides.

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    Private Sub CdB_Ok_Click()
    Dim nb_column1 As Long, nb_column2 As Long
        nb_column1 = Worksheets("Personnal List").Cells(1 & Columns.Count).End(xlToLeft).Column
        nb_column2 = Worksheets("Training Hours").Cells(1 & Columns.Count).End(xlToLeft).Column
     
        Application.ScreenUpdating = False
     
    'Activate "Personnal List"
    With Worksheets("Personnal List").Activate
        ActiveSheet.Unprotect
     
        'Unhide hidden column
            Columns("G:K").Select
            Selection.EntireColumn.Hidden = False
     
        'Copy of reference column
            Columns("H:J").Select
            Selection.Copy
     
        'Insert at the end of table a new column
            Columns(nb_column1 + 1).Select
            Selection.Insert Shift:=xlToRight
            Application.CutCopyMode = False
     
        'Replace "--Template--" by the tab's name
            Columns(nb_column1 + 1).Select
            Selection.Replace What:="--Template--2", Replacement:=TxtBox_Training.Value, LookAt:= _
                xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                ReplaceFormat:=False
            Selection.Replace What:="--Template--", Replacement:=TxtBox_Training.Value, LookAt:= _
                xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                ReplaceFormat:=False
     
            Columns(nb_column1 + 2).Select
            Selection.Replace What:="--Template--Training Year3", Replacement:=TxtBox_Training.Value, LookAt:= _
                xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                ReplaceFormat:=False
            Selection.Replace What:="--Template--", Replacement:=TxtBox_Training.Value, LookAt:= _
                xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                ReplaceFormat:=False
     
            Columns(nb_column1 + 3).Select
            Selection.Replace What:="--Template--Hours4", Replacement:=TxtBox_Training.Value, LookAt:= _
                xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                ReplaceFormat:=False
            Selection.Replace What:="--Template--", Replacement:=TxtBox_Training.Value, LookAt:= _
                xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                ReplaceFormat:=False
     
        'Hide reference column
            Columns("H:J").Select
            Selection.EntireColumn.Hidden = True
     
        'Protect sheet
            ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
                , AllowSorting:=True, AllowFiltering:= _
                True
     
    End With
     
    'Activate "Training Hours"
    With Worksheets("Training Hours").Activate
     
        'Unhide hidden column
            Columns("E:G").Select
            Selection.EntireColumn.Hidden = False
     
        'Copy of reference column
            Columns("F:F").Select
            Selection.Copy
     
        'Insert at the end of table a new column
            Columns(nb_column2 + 1).Select
            Selection.Insert Shift:=xlToRight
            Application.CutCopyMode = False
     
        'Replace "--Template--" by the tab's name
            Selection.Replace What:="--Template--", Replacement:=TxtBox_Training.Value, LookAt:= _
                xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                ReplaceFormat:=False
     
        'Hide reference column
            Columns("F:F").Select
            Selection.EntireColumn.Hidden = True
     
    End With
     
    'Close userform
        Unload Me
        Worksheets("Training List").Select
     
    End Sub
    Merci par avance pour votre temps et votre savoir.

    Cordialement

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonsoir,
    et comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    nb_column1 = Worksheets("Personnal List").Cells(1,Columns.Count).End(xlToLeft).Column
        nb_column2 = Worksheets("Training Hours").Cells(1,Columns.Count).End(xlToLeft).Column
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre émérite
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Par défaut
    Bonjour,
    Essayes de positionner cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     nb_column1 = Worksheets("Personnal List").Cells(1 & Columns.Count).End(xlToLeft).Column
    après celles-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Columns("G:K").Select
    Selection.EntireColumn.Hidden = False
    idem pour nb_column2
    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2016
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2016
    Messages : 102
    Par défaut Nbre Colonnes
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     nb_column1 = Worksheets("Personnal List").Range("A1").End(xlToRight).Column
    même chose pour Nb_column2

    Cordialement.

    Bruno

  5. #5
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bruno,
    as-tu essayé avec des colonnes vides, exemple A,B,C renseignées, D vide, E renseignée ?
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2016
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2016
    Messages : 102
    Par défaut Dernière colonne vide...
    Bonsoir,

    Bien évidement s'il y a des trous dans le gruyère celà ne marche pas

    J'ai zappé "dernière"...

    A pluche

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    nb_column1 = Worksheets("Personnal List").usedrange.colums.count
    nb_column2 = Worksheets("Training Hours").usedrange.colums.count

  8. #8
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,

    La methode de "casefayere" solutionne le problem a 50%. En reecrivant le code suggere le probleme a ete resolu pour "nb_columns2" et s'est reporte sur nb_columns1.
    Pas logique, après réflexion, je pense qu'il faut préciser le nom de feuille avant "Columns" en fonction de la feuille active
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    nb_column1 = Worksheets("Personnal List").Cells(1,Worksheets("Personnal List").Columns.Count).End(xlToLeft).Column
    nb_column2 = Worksheets("Training Hours").Cells(1, Worksheets("Training Hours").Columns.Count).End(xlToLeft).Column
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

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

Discussions similaires

  1. Requete pour compter les points dans un championnat
    Par IG2da dans le forum Langage SQL
    Réponses: 3
    Dernier message: 28/10/2006, 17h58
  2. Problème pour compter les lignes d'un résultat
    Par Yoshidu62 dans le forum Requêtes
    Réponses: 2
    Dernier message: 06/07/2006, 11h18
  3. Réponses: 6
    Dernier message: 06/06/2006, 13h22
  4. requete pour compter les valeurs ds une colonne
    Par smariteau dans le forum Requêtes
    Réponses: 2
    Dernier message: 10/02/2006, 17h37
  5. Réponses: 4
    Dernier message: 29/09/2005, 11h50

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