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 :

Excel formules et macro non convivialité suite à utilisation sur feuille Excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Developer
    Inscrit en
    Juin 2004
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developer

    Informations forums :
    Inscription : Juin 2004
    Messages : 194
    Points : 58
    Points
    58
    Par défaut Excel formules et macro non convivialité suite à utilisation sur feuille Excel
    Bonjour,

    j'ai fait une application sous excel, qui permet d'enregsitrer les non conformités
    liés aux produits fabriqués par une entreprise. Cette entreprise possède 5 ateliers
    qui produisent chacuns quelques non conformités (ou démerites) détecter par le contrôle.

    Pour chaques ateliers, il y a une feuille excel dans laquelle on enregistre
    les non conformités et dans chacunes de ces feuilles il y a les 12 mois disposés l'un
    à la suite de l'autre dans les quelles on fait les enregistrements comme dans la photo Capture.

    [img]

    [/img]

    La ligne Démerite calcul le % de démerite pour le mois en se basant sur un rapport du total
    des calculs des non conformités ainsi que du total des équipements controlés. le résultat
    de chaque moi est porté sur un graphique.

    La colonne totale calcul pour chaque enregistrement la pondération liée aux non conformités.
    Les formules sur la colonne Total en vert calcul une somme en horizontale et selon
    les colonnes nc concérnés la pondération change.

    Vous pouvez également voir un bouton "Inserer Ligne" qui comme son nom le dit permet d'inserer
    des lignes si on venait à avoir un peu trop de non conformités par mois. Et c'est là que
    ça commence à se compliquer car lors de l'insertion d'une ligne , la colonne verte n'incrémente
    pas une suite de la formule sur la nouvelle ligne créee dans la colonne verte. C'est pourquoi
    à ce bouton j'ai associé une macro vba laquelle résout ce problème en effet la macro lit la ligne supérieur
    et réalise la formule pour la ligne créee. (Il faut etre à l'interieur de la colonne pour inserer
    correctement une ligne)

    Le bouton avance au fur et à mesure avec les lignes insérées (je sais pas comment faire autrement).
    Mais si on venait a appuyer de manière trop répeter cela crée parfois des bogues au niveau du code vba et

    parfois ça crée aussi un bouton supplémentaire près du bouton sur la feuille, bref ça ne devient pas

    convivial.

    Jusqu'ici le programme tourne mais bon pas très pratique..

    Et à cela vient s'ajouter un petit problème c'est que si l'on se trouve à la dernière
    ligne avant la totale du nombre d'équipments controlés, le résultat de la formule
    de la somme total d'équipments controlés ne s'incrémente pas en conséquent. alors que la formule
    de la colone verte bien pour contrer ce problème, j'ai du me positionner sur non pas la dernière
    mais l'avant dernière ligne avant la ligne du total pour qu'enfin le résultat de
    la somme total d'équipments controlés s'incrémente.

    Bref y-a-t- il une méthode pour éviter ce genre de problèmes doit on bloquer les cellules, faire une

    automatisation des insertions lignes ?

    Merci de votre aide.

  2. #2
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Pour ma part, je ne permets (presque) jamais les modifications dans la feuille par l'utilisateur.

    Je fais un max de choses par l'usage de formulaires où je mets toutes les sécurités que je veux et j'insère les données provenant de ces formulaires dans les feuilles où je peux faire tous les calculs et mises en forme que je veux.

    Je ne suis jamais dépendant de la manière dont Excel va gérer les insertions et déplacements.

    Autrement dit, je fais un maximum de choses en VBA et ne laisse à Excel que les calculs, quand c'est nécessaire.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  3. #3
    Membre du Club
    Profil pro
    Developer
    Inscrit en
    Juin 2004
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developer

    Informations forums :
    Inscription : Juin 2004
    Messages : 194
    Points : 58
    Points
    58
    Par défaut
    Merci AlainTech

    Ta reponse me parait tres interessante.
    En effet remplir les feuilles excel a partir du formulaire
    nous evitera d'effacer les formules des feuilles, de faire des insertions lignes entrainant annulation des formules suite a cela.
    Mais comment pourrais-je creer un formulaire ressemblant a la feuille. De plus ca
    demendera deux interfaces pour l'utilisateur ( le formulaire ainsi que la feuille ) ce qui deviendra peut etre plus lourd mais qui peut etre assurera un bon fonctionnement ?

    As-tu vu la capture d'image comment faire un programme simple et efficace d'utilisation?

    Encore merci

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Citation Envoyé par Aliveli
    As-tu vu la capture d'image?
    Euh, non, pas vraiment...

    Avec rien entre tes balises img, on ne risque pas de voir grand-chose.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  5. #5
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Salut

    Pour l'image, si tu n'as pas de site Web où tu pourrais la placer, essaie les fichier joints.

  6. #6
    Membre du Club
    Profil pro
    Developer
    Inscrit en
    Juin 2004
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developer

    Informations forums :
    Inscription : Juin 2004
    Messages : 194
    Points : 58
    Points
    58
    Par défaut
    Voici,

    Ci-joint le fichier image capture.jpg.

    Pièce jointe 4179

    Il y a donc pour chaques ateliers une feuille reprenant
    les 12 mois de l'année.

    Si il s'avère qu'il ya trop de non conformités pour un mois donné
    alors il faut appuyer sur le bouton "inserer ligne" près du total du mois en question ce bouton permet par un code vba d'ajouter à la nouvelle ligne la formule
    de la ligne précedente. Mais si je venais à proteger les cellules de la colonne
    total ( en vert ), ce code vba génère une erreur.

    Voici le code :

    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
     
     
    Sub NouvelleLigne()
     
    Dim ZtNumLig As Integer
    Dim ZtDerCol As Integer
     
    ActiveCell.Range("A2").EntireRow.Insert
    ZtNumLig = ActiveCell.Row
    ZtDerCol = ActiveCell.SpecialCells(xlCellTypeLastCell).Column
    Range(Cells(ZtNumLig, 1), Cells(ZtNumLig, ZtDerCol)).Copy _
    Range(Cells(ZtNumLig + 1, 1), Cells(ZtNumLig + 1, ZtDerCol))
    Application.ScreenUpdating = False
     
    On Error GoTo sort
     
    For i = 1 To ZtDerCol
    If Not Cells(ZtNumLig + 1, i).HasFormula Then
    Cells(ZtNumLig + 1, i).ClearContents
    End If
    Next i
    ActiveCell.Range("A2").Select
     
    ExitHere:
     
      Exit Sub
     
    sort:
    Range(Cells(ZtNumLig + 1, 1), Cells(ZtNumLig + 1, ZtDerCol)).Delete
       MsgBox ("Veuillez sélectionner la fin de la plage zone jaune claire du mois et cliquer sur bouton")
      Resume ExitHere
     End Sub
    Donc si jecomprend bien si je veux proteger les cellules autant ne pas utiliser de code vba mais plutot travailler avec des formulaires ?

    Comment je pourrais faire cela?

    Merci

  7. #7
    Membre du Club
    Profil pro
    Developer
    Inscrit en
    Juin 2004
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developer

    Informations forums :
    Inscription : Juin 2004
    Messages : 194
    Points : 58
    Points
    58
    Par défaut
    Bonsoir,

    Je reviens à ma question donc si je comprends bien l'idéal est d'utiliser des formulaires si je veux proteger les cellules de manière sure.

    Mais avez vous une idée de ce formulaire comment je pourrais le faire pour qu'il ressemble à la capture d'image que je vous ai présentée?

    En vous remerciant.

  8. #8
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Salut

    Est-ce bien nécessaire que le formulaire ressemble en tout points à la grille de données?

    Si oui... Il y a le MsFlexGrid. Mais il a des limites. Il faut tricher avec un TextBox Au dessus des cellules pour pouvoir simuler une grille éditable. C'est dans la FAQ.

  9. #9
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    La plupart du temps, on ne doit traiter qu'une ligne à la fois (ajout, modification ou suppression).
    Le formulaire va donc reprendre les champs d'une seule ligne.
    La feuille Excel sert de "base de données" et d'affichage.
    Pour appeler le formulaire, je mets des boutons dans une barre d'outils qui n'est affichée que pour ce classeur.
    Cette façon de faire donne un résultat à la fois "pro" et fiable (pas de déterrioration du contenu de la feuille par des manipulations maladroites).
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  10. #10
    Membre du Club
    Profil pro
    Developer
    Inscrit en
    Juin 2004
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developer

    Informations forums :
    Inscription : Juin 2004
    Messages : 194
    Points : 58
    Points
    58
    Par défaut
    Merci encore à tous les deux,

    Je suppose qu'en parlant de formulaire, il s'agit bien des userforms de vba ?

    Je pense faire donc afficher un formulaire (userform) au démarrage du classeur
    avec des boutons radio , à cocher, des listes bloxes, des zones de textes, etc

    Pour remplir pour chaque numéro de non conformité : la catégorie de l'atelier, le nombres d'articles controlés, le nombre de nc détectés et le type, etc de facon à enregstrer l'enregsitrement un peu comme dans ma présentation de départ.

    Mais je me pose la question comment différencier les mois au niveau de la présentation si cela est nécessaire pour faire mes graphiqes de chaques mois ?

    Sinon je pourrais eventuellement mettre les enregistrements l'une à la suite d l'autre des lignes en différenciant les mois des dates dans la colonne date qui sera une copie d'une zone de texte auquel j'airais mis la date du jour par défaut comme suit par exemple : Txtbox1.Value = Format(Now(), "dd/mmm/yyyy").

    Encore merci pour les informations.

Discussions similaires

  1. utilisation des filtres excel avec une macro access
    Par alexlkds dans le forum VBA Access
    Réponses: 3
    Dernier message: 10/11/2009, 18h35
  2. Utilisation du solveur Excel dans une macro
    Par michelandco dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/10/2007, 12h10
  3. Utiliser une fonction excel dans une macro et proprièté range
    Par bebel9313 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/08/2007, 14h25
  4. [VBA Excel] Associer N macros à N boutons suite à un événement
    Par Vorillyan dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 24/11/2006, 08h46
  5. [VBA/Excel] Formule via macro
    Par UNi[FR] dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/10/2005, 15h11

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