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 :

Macro pour vérifier les cellules obligatoire non renseignées


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 Macro pour vérifier les cellules obligatoire non renseignées
    Salut le forum

    Je travail sur une facture et souhaite bénéficier de vos soutiens pour le parfaire.
    En effet, je saisis les quantités à partir de la colonne G (G30:G...).
    Dans certaines colonnes de ma facture, j'ai mis des formules.
    Ces formules ne peuvent fonctionner que si toutes les conditions de remplissage sont respectées à savoir que si une cellule de la colonne G est renseignée, les cellules des colonnes J, K, M et P (de la même ligne que G) devront aussi être renseignées.
    Je souhaite trouver une solution qui me permettra à la validation de ma facture de savoir que certaines cellules qui devraient être renseignées ne l'ont pas été.
    Telle est mon idée et je compte sur vos sages solutions.
    N.B :j'ai déjà eu une proposition par MFC mais cela ne résous pas mon problème (à tout moment il faudra être obligé d'effacer les couleurs)
    Merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Points : 5 901
    Points
    5 901
    Par défaut
    Bonjour,

    Je pensais aussi à une MFC.
    S'il y a une valeur entrée, les autres cellules sont colorées jusqu'à ce que toutes celles de la ligne soient renseignées.

    Je ne vois pas pourquoi tu devrais effacer les couleurs.
    Peux-tu expliquer ?

    Tout est dans la manière d'écrire la condition de la MFC, je pense...

  3. #3
    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 Parmi et le forum

    Merci pour votre feedback.
    Je ne vois pas pourquoi tu devrais effacer les couleurs.
    Peux-tu expliquer ?
    Il faut noter que les couleurs s'affichent même dans le corps de la facture et ca ne fera pas sérieux car à l'impression la facture sera surchargé.
    Merci de voir ce qui faisable.
    Merci

  4. #4
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Points : 1 499
    Points
    1 499
    Par défaut macro pour vérifier les cellules obligatoires non renseignées
    Bonjour,

    Dans la gestion de mon immeuble, j'ai adopté la solution suivante.

    Le fonds de ma fenêtre est légèrement coloré parce que le blanc fait mal aux yeux.

    J'ai donc choisi de mettre en blanc uniquement les cellules à renseigner.

    De ce fait, pas de code et à l'impression pas de couleur de fond non plus.

    cordialement,

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Points : 5 901
    Points
    5 901
    Par défaut
    Dans ta MFC, si toutes les cellules sont vides, ne mets aucune couleur. De cette façon, aucune couleur n'apparaît sauf s'il y a au moins une donnée entrée.

    Une autre façon de procéder pourrait être dans Worksheet_Change()
    Il te suffirait de vérifier si les cellules sont remplies ou non sur la ligne qui a été modifiée.
    Je pense que ça pourrait se faire assez simplement...

  6. #6
    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
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut heu
    Bonjour
    puisque tes formules sont au point et que ta question portait sur un evenement a la fin je suppose

    Je souhaite trouver une solution qui me permettra à la validation de ma facture de savoir que certaines cellules qui devraient être renseignées ne l'ont pas été.
    Telle est mon idée et je compte sur vos sages solutions.
    une idée serait de tester la cellule en question de chaque ligne de la facture
    si elle est egale a zero faire ceci ou cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    'lors de la validation 
    sub validation ()
    for i = premiereligne de ta facture to derniereligne de ta fature 
    if cells(i,X)<=0 then  ......
    next i 
    end sub
    c'est juste une idée comme ca

    Au plaisir

  7. #7
    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 à tous

    Merci pour vos contributions.
    Comme Patrick l'a dit, il s'agit d'une évènement de fin que je souhaite.
    Si une quantité est saisie dans la colonne G, et que les cellules de la même ligne restent non renseignées, à la validation, un message d'alerte devra me signifier que les dites cellules n'ont pas été renseignées. Ce qui me permettra d'apporter les corrections nécessaires.
    C'est ce que je souhaite mais pas de MFC (car il s'agit d'un évènement de fin et non au fur et à mesure).
    Merci pour votre compréhension

  8. #8
    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
    Essaie d'incorporer le test dans les formules


    Exemple, on écrit Incomplète comme résultat de la formule si l'un des cellules est vide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(G34="";"";SI(OU(J34="";K34="";M34="";P34="");"Incomplète";G34*J34*K34*M34*P34))

  9. #9
    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 Mercatog

    Merci pour votre contribution.
    Je pensais qu'une solution par macro allait être réalisable comme cela c'est à la validation que l'agent pourra savoir que certaines cellules n'ont pas été renseignées et en ce moment, il pourra apporter les corrections nécessaires.
    Merci pour vos éventuelles autres contributions.

  10. #10
    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
    Tout est possible

    On commence d'abord par te proposer des solutions purement Excel (Car on oubli souvent qu'on travaille avec un tableur et on se confine rapidement vers du vba)

  11. #11
    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
    Moi particulièrement j'aime beaucoup les formules excel et j'en utilise rationnellement. Je sollicite des solutions vba après avoir apprécié les "limites" des formules qui doivent s'adapter à mon cas sans oublié que je m'adresse à un expert (j'ai un respect considérable pour vous car vous m'avez fait sortir des solutions inimaginables et encore merci pour hier).
    Si une solution par macro est faisable, je suis preneur.

  12. #12
    Membre chevronné
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 037
    Points : 1 925
    Points
    1 925
    Billets dans le blog
    5
    Par défaut
    Bonsoir,
    le besoin reste toujours dans la portée des formules Excel que tu peux exprimer en VBA.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If WorkSheetFunction.And(Champ1 <> "", Champ2 <> "", Champ3 <> "") Then
    'instructions ...
    Else
    MsgBox ....
    End if

  13. #13
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Points : 1 499
    Points
    1 499
    Par défaut macro pour vérifier les cellules obligatoires non renseignées
    Bonjour,

    Les colonnes G J K M P sont une liste posée sur une feuille différente de la facture ?

    Chaque ligne de la liste sont les données correspondant à une facture ?

    Comment est validée la facture ? Avec un bouton posé sur la feuille Excel de la facture ? Si oui, la solution Mercatog logée dans le code associé au bouton me semble répondre au problème; à savoir si Gi * Ji * Ki * Mi * Pi = 0 "alors cellules non ou mal renseignées"

    Cordialement,

  14. #14
    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 à tous

    nibledispo :
    Les colonnes G J K M P sont une liste posée sur une feuille différente de la facture ?
    Je répondrai par NON car ces colonnes sont partie intégrante de la facture. Il sont en quelque sorte indissociable. J'explique un peu :
    sur la facture, je saisis en G la quantité, le Prix unitaire en H et le prix total en I.
    dans la colonne H, la formule suivante est saisie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SI(ESTERREUR(ARRONDI(L30*RECHERCHEV(K30;$L$16:$M$26;2;0);0));"";ARRONDI(L30*RECHERCHEV(K30;$L$16:$M$26;2;0);0))
    Vous voyez déjà que la formule en H ne pourra fonctionner que si L, K, M est renseigné.
    Chaque ligne de la liste sont les données correspondant à une facture ?
    Oui à la même facture.
    Comment est validée la facture ? Avec un bouton posé sur la feuille Excel de la facture ? Si oui, la solution Mercatog logée dans le code associé au bouton me semble répondre au problème; à savoir si Gi * Ji * Ki * Mi * Pi = 0 "alors cellules non ou mal renseignées"
    Oui j'ai un bouton sur la feuille comportant la facture qui devra me permettre de m'assurer que la facture est correcte sinon que les points en suspend me soit signifiés.
    Dans l'espoir que ces quelques explications vous permettra de mieux me comprendre, je reste à votre disposition pour tout complément d'information.

  15. #15
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut
    Bonjour,

    lignes à insérer dans la procédure du bouton de validation, voie pourtant déjà indiquée par Patrick notamment,
    le code s'interrompant en sélectionnant la première cellule non renseignée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        COL = [{10,11,13,16}]
     
        For R& = 30 To Cells(Rows.Count, 7).End(xlUp).Row
            If Cells(R, 7).Value > "" Then
                For Each C In COL
                    If Cells(R, C).Value = "" Then
                        Cells(R, C).Select
                        MsgBox "Cellule non renseignée !", vbCritical
                        Exit Sub
                    End If
                Next C
            End If
        Next R
    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

  16. #16
    Expert éminent
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Points : 6 699
    Points
    6 699
    Par défaut
    Bonjour,

    La solution dépend de la clarté dont a été exprimé le besoin

    Il y a moult façons de faire, mais c’est dur de jouer au devin.

    A un premier stade, tu peux donner un nom à la plage de cellules discontinues (ou non ?) qui sont obligatoires. Du coup le code de validation s’en trouve simplifié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub gogo()
    Dim cell As Range
     
    For Each cell In Range("Obligatoire")
        Debug.Print cell.Address 'à la place le code de vérification
    Next cell
    End Sub
    Quitte à utiliser du VBA, tu peux chiader l’ergonomie et ne faire apparaître les zones finales de totaux etc… qu’à partir du moment où les cellules voulues sont complètes (un simple format spécial avec ;;; ou ;; les passe en encre invisible et non pas une encre de la couleur du fond qui se voit en sélection de plage et à l’impression le plus souvent (laser n&b)).
    Dans le même temps, tu mets la propriété de ton bouton de feuille (activeX) à false si bien que l’utilisateur ne peut valider tant que les champs ne sont pas remplis… etc.,etc.

    cordialement,

    Didier

  17. #17
    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 à tous

    Merci pour vos multiples contributions très riche.
    Finalement j'ai trouvé une solution par MFC qui permet de se débarraser automatiquement des couleurs quand toutes les conditions venaient à être remplies.
    Maintenant, ce que je vais solliciter sera la suivante:
    Si dans les colonnes J, K, M, O ou P, il y'a une cellule qui contient une couleur rouge (ce qui signifie qu'il y'a erreur), je souhaite que les dites cellules me soient listées.
    Exemple du msgbox : Attention! cellules J30, K56, O90 non renseignées; cela permettra à l'agent de savoir qu'il doit forcement apporter les corrections nécessaires.
    N.B :j'ai perdu beaucoup de marché dans des appels d'offres suite à des erreurs d'inattention voilà pourquoi je souhaite une solution "radicale" pour limiter les dégâts.
    Si ce que je souhaite arrivait à être réalisé, j'aurai résolu un soucis sérieux et cela grace à vos contributions.

  18. #18
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Points : 1 499
    Points
    1 499
    Par défaut macro pour vérifier les cellules obligatoires non renseignées
    bonjour Capi81,

    Pourquoi ton problème nous concernerait si ta solution MFC ne nous regarde pas ?

    A+

  19. #19
    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 nibledispo

    Excusez mon "égoïsme".
    Voici la solution de la MFC:
    http://cjoint.com/?CJflI2slKXi

    Cordialement

Discussions similaires

  1. [XL-2007] MACRO pour colorier les cellules
    Par yusufwac dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/07/2013, 21h09
  2. [XL-2010] Macro pour détecter les cellules protégées
    Par letal dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/07/2012, 12h20
  3. [XL-2007] Macro pour masquer les colonnes avec cellules vides
    Par Cirrus22 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/12/2009, 19h50
  4. [XL-2007] Macro pour supprimer les espaces dans les cellules
    Par ab1to dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 26/11/2009, 16h25
  5. Réponses: 2
    Dernier message: 07/04/2009, 11h36

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