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 :

Repérer les colonnes vides et les lignes mal renseignées


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 105
    Par défaut Repérer les colonnes vides et les lignes mal renseignées
    Salut tout le monde,

    J’ai un tableau, je souhaite scruter chaque colonne correspondant à une région (Lorraine, Alsace…), dans le cas ou il n y a aucune valeur au niveau de la colonne afficher un message d’erreur et recopier le nom de la région dans un onglet ERREUR en écrivant devant : problème au niveau de la structure.

    Mon tableau est en réalité très grand, je vous ai fournit ci-joint un petit exemple…(mon tableau est aussi susceptible de changer car il est généré par une macro)

  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
    Salut moun

    tu adapter ce code entre autres
    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 test()
    Dim c As Integer, r As Integer, v As Integer
     
    For c = 4 To 7
    v = 0
    For r = 3 To 34
     
    If Sheets("sheet1").Cells(r, c).Value <> "" Then
    v = v + 1
    End If
    Next r
    If v = 0 Then MsgBox "colonne vide"
    If v > 0 Then MsgBox "ok"
    Next c
    End Sub
    il suffit de remplacer les msgbox avec ton instruction
    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 confirmé
    Inscrit en
    Mars 2009
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 105
    Par défaut
    salut,
    merci pour ta réponse casefayere
    est ce que ce code prend en compte aussi le fait si il y a une cellule de la colonne où il y a un commentaire alors ne pas afficher le msg d 'erreur pour la colonne?

  4. #4
    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
    Fais l'essai, normalement oui
    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...)

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 105
    Par défaut
    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
    Sub test()
    Dim c As Integer, r As Integer, v As Integer
     Dim DerniereColonne As Integer
     Dim DerniereLigne As Integer
     Dim my As Worksheet
     Set my = Sheets("sheet1")
     DerniereColonne = my.Range("IV1").End(xlToLeft).Column
     DerniereLigne = my.Range("D65536").End(xlUp).Row
    For c = 5 To DerniereColonne
    v = 0
    For r = 3 To DerniereLigne
     
    If my.cells(r, c).Value <> "" Then
    v = v + 1
    End If
    Next r
    'Est ce qu'on peu dans ce cas la copier coller le nom de la région dans une sheet "ERREUR" avec le contenu du msg box écrit devant?
    If v = 0 Then MsgBox "colonne vide, level mal renseigné"
     
    'je ne traite pas le cas où la colonne est non vide
    'If v > 0 Then MsgBox "ok"
    Next c
     
    End Sub
    et pour la partie copier coller le contenu de la cellule se trouvant au niveau de la ligne 2 qui correspond à la colonne vide, que faire ?
    une fois que l'on appuyer sur Ok est ce que le code continu normalement ?

  6. #6
    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
    un truc comme ça :
    Sub test()
    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
    Dim c As Integer, r As Integer, v As Integer, er As String
     
    For c = 4 To 7
    v = 0
    For r = 3 To 34
     
    If Sheets("sheet1").Cells(r, c).Value <> "" Then
    v = v + 1
    End If
    Next r
    If v = 0 Then MsgBox "colonne vide"
    er = Sheets("sheet1").Cells(c, 2).Value
    Sheets("erreur").Range("a2") = er & " : Problème au niveau de la structure "
    If v > 0 Then MsgBox "ok"
    Next c
    End Sub
    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...)

  7. #7
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 105
    Par défaut
    Salut merci pour votre réponse
    Il y a un bug à ce niveau la?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("erreur").Range("a2") = er & " : Problème au niveau de la structure "
    et pour la partie : dans le cas ou il n y a aucune valeur au niveau de la colonne recopier le nom de la région dans une feuille nommée ERREUR en écrivant devant : problème au niveau de la structure??

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

Discussions similaires

  1. [Débutant] Filtrer les colonnes vides dans un composant Webpart
    Par kerichen dans le forum Développement Sharepoint
    Réponses: 3
    Dernier message: 29/04/2015, 14h49
  2. Inserer une formule pour toutes les colonnes vides
    Par sakhob dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 30/09/2014, 20h26
  3. [XL-2007] Comment supprimer les case vides d'une ligne?
    Par stephanech dans le forum Excel
    Réponses: 1
    Dernier message: 22/06/2010, 00h56
  4. supprimer les colonnes vides d'un array Javascript
    Par sebhm dans le forum Général JavaScript
    Réponses: 26
    Dernier message: 11/01/2010, 19h55
  5. Réponses: 3
    Dernier message: 16/04/2008, 08h39

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