Excel, répercution en ligne ?

Résolu
laperuk -  
Laperuk Messages postés 61 Statut Membre -
Je fais un planning avec EXCEL...

Ce que je souhaiterai c'est par exemple si sur une ligne, je rentre dans une cellule un 1 ou autres symboles.. Je voudrai qu'il y ai une répercution sur les autres cellules de la ligne, afin que celles ci se remplissent de 0 ou autre chose que 1...

Est ce possible??

28 réponses

  • 1
  • 2
Résumé de la discussion

Le problème consiste à faire en sorte que, lorsqu’on saisit 1 dans une cellule d’une ligne, les autres cellules de la même ligne se remplissent de 0 (ou d’une autre valeur) et que les cellules vides restent vides. Une solution retenue utilise une macro Worksheet_Change qui, si une seule cellule est modifiée et que sa valeur est 1, parcourt les colonnes de la même ligne et met 0 dans les cellules non vides, à l’exception de celle modifiée. Des limites ont été signalées, notamment des erreurs d’exécution liées à des cellules fusionnées (type mismatch), ce qui pousse à éviter les cellules fusionnées ou à adapter le code; une alternative consiste à employer une fonction SI dans les autres cellules. Des ajustements et des exemples de fichiers ont été évoqués pour illustrer et tester le comportement souhaité.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Essayer avec la fonction SI() dans les autres cellules avec condition sur la cellule (1) comme ceci :
    SI(cel=1 ;0 ;autre chose)
    1
    1. laperuk
       
      Non ça ne fonctionne pas... Je voudrai par exemple mettre un 1 au milieu d'une ligne et toutes les cellules avant et après ce 1 sur la ligne, devienne 0 ...

      Est ce possible??
      0
    2. laperuk
       
      Par exemple imaginon un plannig avec Lundi mardi mercredi jeudi vendredi...
      Je voudrai que lorsque je mets matin le lundi, tout devient après midi dans la ligne..

      Est ce faisable?
      0
  2. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Essayer cette procédure:
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Columns.Count > 1 Then Exit Sub
    If Target.Value = 1 Then
        For p = 4 To 19
            If p <> Target.Column Then
                If Not Cells(Target.Row, p) = "" Then
                    Cells(Target.Row, p) = 0
                End If
            End If
        Next
    End If
    End Sub
    1
    1. Laperuk
       
      Merci beaucoup Le pingou, que dis je MR le pingou...

      Encore merci.. Je peux avancer sereinement et surtout beaucoup plus rapidement...

      Oooopsss !! Je n'ai plus d'erreur mais lorsque je mets un 1 dans une cellule fusionnée ça n'a pas de répércussion..
      Par contre un 1 dans une autre case rend bien un 1 dans une cellule fusionné en 0 .. Normal??
      En résumé, les cases non fusionnée ont une action sur les fusionnées mais pas inversement...
      0
    2. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
       
      Merci, c'est fait.
      0
  3. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Eh bien, contrôler que vous avez la bonne procédure car, selon votre texte du débogage vous n'avez pas la bonne version!
    Il manque cette ligne :
    If Target.Columns.Count > 1 Then Exit Sub--
    Salutations.
    Le Pingou
    1
    1. Laperuk Messages postés 61 Statut Membre 34
       
      J'ai bien tout mis a jour.. Mais le problème subsiste, pas d'erreur mais les cellules fusionnées ne fonctionnent pas..

      En tout cas j'ai terminé mon projet, donc je vous envoie la version finale.. Plus rien ne bougera.. (sauf le nombre de cellules fusionnées, qui peut aller de 1 à 8)

      Car je dois avouer que tout est de ma faute, à chacune de vos solutions, mon plan se modifié..

      Voici la version finale, avec écrit en haut ce qui ne fonctionne pas.. Sachant que j'ai mis a jour avec la ligne manquante la macro..

      Je vous remercie pour tout ce que vous avez déja fait pour moi..

      Voici mon fichier final : http://www.cijoint.fr/cjlink.php?file=cj201005/cijH6qJ9ji.xls
      0
  4. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Voila c'est fait : http://www.cijoint.fr/cjlink.php?file=cj201005/cij0rD6WEE.xls
    1
    1. Laperuk Messages postés 61 Statut Membre 34
       
      ça fonctionne très bien... Je sais pas comment te remercier.. Ha si en te mettant encore un +1 !
      En tout cas un grand merci..
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Merci pour la précision, en effet avec la fonction [SI] se n'est pas réalisable.
    Vous devez passer par une procédure (macro).
    Essayer cette procédure valable pour les colonnes A:F à mettre dans le module de feuille:
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Value = 1 Then
        For p = 1 To 6
            If p <> Target.Column Then
                Cells(Target.Row, p) = 0
            End If
        Next
    End If
    End Sub
    Salutations.
    Le Pingou
    0
    1. laperuk
       
      Nickel.. Mais.. Lorsqu'ils sont en congé.. Je n'ai rien mis et avec ce macro.. Le congé passe en 0 .. peut il ignoré les cases vides??
      0
  7. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Et si vous indiquiez toutes les conditions se serait plus simple !
    0
    1. laperuk
       
      Pardon le pingou...

      Il n'y a pas énormément de condition, j'ai le temps de travail de chacun, quand j'inscris un 1 dans une des cases de la ligne qui représente le temps, j'ai besoin que toutes les autres changent, sauf celle étant vide représentant le RH ou RTT...

      Je peux bien sur renommer ces cases vide en RH ou quoique ce soit, mais je veux que celles-ci ne deviennent pas 0 car sinon, je ne sais plus quand ils ont posé leur vacance..

      Encore désolé.. Ta formule est géniale si je n'avais pas de cases vide représentant les RH, qui, avec cette formule se transforme en 0 ...
      0
    2. laperuk
       
      Il faudrait justa ajouter a ton macro que lorsque un cellule est vide.. Celle ci le reste...
      0
  8. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Il faut juste .... alors voilà :
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Value = 1 Then
        For p = 1 To 6
            If p <> Target.Column Then
                If Not Cells(Target.Row, p) = "" Then
                    Cells(Target.Row, p) = 0
                End If
            End If
        Next
    End If
    End Sub
    0
    1. laperuk
       
      Super!!! Merci énormément !! Tu es génial.. Pardon avec il faut juste, ce que tu fais je suis incapable de le faire..

      J'ai une petite question.. Hum, me frappes pas.. Mais des fois.. J'ai des céllules fusionnés, et avec ta formule, j'ai :

      "erreur d'execution "13":
      type incompatible"

      Est ce que tu peux réussir à ajouter quelque chose à ce jolie macro?? ou vais je devoir revoir la présentation de mon tableur ? Encore merci en tout cas!!!

      Pardon de ne pas l'avoir marqué de suite... En effet j'ai des cellules fusionnées car il y a des jours ou les après midi finissent plus tard et d'autre moins..

      Encore pardon et merci si tu peux encore m'aider!!
      0
  9. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Pour être sur le même cas il serait bien de mettre le fichier sur https://www.cjoint.com/ et poster le lien (au minimum la feuille concernée !)
    0
    1. laperuk
       
      https://www.cjoint.com/?eEkqLRFzwz

      Ce n'est pas le fichier en entier qui est énorme.. Juste un exemple.. pour que tu cernes mieux mon problème de cas fusionné.. Ne prends pas en compte ce qui est écrit dedans, je mettrai des 1 et des 0 ..

      Encore merci de m'aider..
      0
    2. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
       
      Bonjour,
      Merci, c'est parfait comme cela.
      Réponse en début de soirée.
      Salutations.
      Le Pingou
      0
    3. laperuk
       
      Merci a toi !!
      0
    4. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
       
      Bonjour,
      A quoi correspond le [X] dans les cellules de couleur olive ?
      Salutations.
      Le Pingou
      0
  10. Laperuk
     
    Non pingou !! J'ai encore un problème j'ai modifié.. Tu vois??
    0
  11. Laperuk Messages postés 61 Statut Membre 34
     
    Pingou si tu repasses par là, Help me...
    0
  12. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Ou est le problème ?
    0
    1. Laperuk Messages postés 61 Statut Membre 34
       
      Salut pingou..
      Le soucis est que lorsque je mets un 1 dans une cellule fusionnée rien ne se passe, cela ne mets pas 0 aux autres cellules...

      Par contre en mettant 1 dans une cellule non fusionnée, là j'ai bien des 0 partout même dans les cellules fusionnées...

      Y a t'il une solution?? Encore merci...
      0
  13. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Eh bien c'est étrange, je viens de faire un test sur votre fichier, tout est correcte.
    Votre fichier : https://www.cjoint.com/?fbrvYJC01a
    Au cas ou, préciser le problème sur le fichier.
    0
    1. Laperuk Messages postés 61 Statut Membre 34
       
      Hum... je dois pas savoir bien integrer le macro alors... Je vais réessayer..
      Peux tu plus me détailler comment isérer la macro??

      Moi je fais, OUTIL, MACRO, visual editor macro, puis je clique deux fois sur la feuille qui correspond ou je veux mettre la macro, une fenetre blanche s'ouvre et j'y colle le macro que tu m'as donné.. Tout fonctionne bien sauf pour les cellules fusionnées.. Je te renvoie mon vrai fichier, sur lequel je bosse...

      http://www.cijoint.fr/cjlink.php?file=cj201005/cijocCFIOt.xls
      http://www.cijoint.fr/cjlink.php?file=cj201005/cijocCFIOt.xls

      Tu verras en mettant un 1 dans une cellule fusionnée, j'ai la fameuse erreur 13 !
      0
  14. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Il n'y a aucune erreur avec votre fichier (est-ce vraimant le vrai fichier ? ).
    La procédure est correctement insérée dans le module de feuille.
    Cependant, pourquoi avoir mis la valeur 60 pour le [To] alors que la valeur 8 et celle qui correspond au fichier ?

    Note: dès que vous avez l'erreur 13, faite une copie d'écran et coller la sur un document Word, puis sur la fenêtre du message d'erreur clic sur Débogage et refaire une copie d'écran et la coller à la suite de l'autre puis mettre le document sur https://www.cjoint.com/

    Salutations.
    Le Pingou
    0
    1. Laperuk Messages postés 61 Statut Membre 34
       
      Je ne comprends pas, le lien que je t'ai mis, moi j'ai une belle erreur lorsque je mets un 1 dans la cellule D2(qui est fusionné avec E2 !!

      Là j'ai bien une erreur 13, avec comme debugage ça :
      Private Sub Worksheet_Change(ByVal Target As Range)
      cette ligne la en jaune If Target.Value = 1 Then
      For p = 2 To 6
      If p <> Target.Column Then
      If Not Cells(Target.Row, p) = "" Then
      Cells(Target.Row, p) = 0
      End If
      End If
      Next
      End If
      End Sub

      Revoilà le lien...http://www.cijoint.fr/cjlink.php?file=cj201005/cijocCFIOt.xls
      0
  15. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Dans la procédure il y avait la présence du nombre [3] devant la ligne [If Target.Value = 1 Then] (valeur non présente dans ma procédure du poste 17 du 30.5.2010 à 13 :18).
    En plus votre tableau commence à la colonne [B] ou [2] et non pas la 4 comme mentionnée dans la boucle [For p = 4 To 150].
    Voici votre fichier avec la procédure corrigée : https://www.cjoint.com/?fepn3O40Rl
    0
    1. Laperuk Messages postés 61 Statut Membre 34
       
      Merci Pingou, mais le problème ne venait pas de là...

      En effet mon soucis de cellule fusionnée, avec un 1 qui ne devient pas 0, n'est toujours pas solutionnée..
      Voir ci-joint :
      http://www.cijoint.fr/cjlink.php?file=cj201005/cijyZHjMup.xls
      0
  16. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Pas d'accord avec vous : https://www.cjoint.com/?fesnae4HcV
    0
    1. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
       
      Bonjour,
      En complément du poste 32, vous avez posé les conditions suivantes :
      Si dans une ligne on entrer 1 dans une cellule les autres deviennent 0
      Exception, les cellules vides restent vides.

      La procédure est conforme à ces conditions.
      Ou vous avez d'autre condition !
      0
    2. Laperuk Messages postés 61 Statut Membre 34
       
      non je n'en ai pas.. Mais moi, là ou vos 1 et 0 fonctionne moi rien.. Je viens de réessayer avec le fichier que vous avez mis ci joint, et dans mon excel, pour les cellules fusionnées, rien ne se passe..
      Je vois que pour vous cela fonctionne, mais pour moi rien du tout.. Bizarre..

      Est ce la version de mon excell?? Pourtant nous travaillon sur le meme fichier vu que j'ai essayé avec votre lien... GRRR !!

      Je remt le lien qui était votre lien en vous montrant que rien ne se passe..
      http://www.cijoint.fr/cjlink.php?file=cj201005/cijclnGz56.xls
      Je suis sous excel 97.
      0
  17. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    J'ai simplement mis 1 dans la cellule que vous pointez et voici le résultat:
    https://www.cjoint.com/?ffnN3dytis

    Note: avez-vous pris soin d'activer les macros à l'ouverture du fichier ?

    Salutations.
    Le Pingou
    0
    1. Laperuk Messages postés 61 Statut Membre 34
       
      Comment fait on cela??

      Je ne fais rien et le 1 devient bien 0 dans les cellule non fusionnées.. Je ne savais donc pas qu'il fallait activer quoique ce soit..
      0
    2. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
       
      Bonjour,
      Pour commencer, est-ce que cela fonctionne avec le fichier précédent .... Oui ou Non ?
      Merci.
      Salutations.
      Le Pingou
      0
  18. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Comment fait-on cela?? : https://www.cjoint.com/?ffo2tsmllc
    0
    1. Laperuk Messages postés 61 Statut Membre 34
       
      Mon pc est trop vieux pour avoir ce systeme de protection.. Non ce n'est pas ça..
      Puis le macro fonctionne puisque les 1 se transforme bien en 0 dans les cases non fusionnées..

      Bon.. Je sens que je vais devoir abandonner cette idée d'automatisation..
      0
    2. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
       
      Bonjour,
      C'est vraiment dommage que je n'aie pas plus d'éléments car il y a certainement une bonne solution.
      Au cas ou, vous pouvez me contacter par MP via mon profil !
      Salutations.
      Le Pingou
      0
  19. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Normalement cela doit fonctionner sur votre PC car je viens de faire un test sur mon portable avec W98 et MSO 2000.
    Pouvez-vous faire un pas à pas sur la procédure pour savoir ou le travail ne se fait pas !
    En marge pouvez-vous me faire une copie d'écran avec classseur ouvert et de même pour l'éditeur de VBA (ouvrir via : touche Alt+F11)
    Salutations.
    Le Pingou
    0
    1. Laperuk Messages postés 61 Statut Membre 34
       
      http://www.cijoint.fr/cjlink.php?file=cj201005/cijX9b0Esj.xls
      Voilà tu as tout...

      Par contre.. Moi c'est excel 97... Voilà je suis desespéré...
      0
    2. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
       
      Bonjour,
      Merci, mais pouvez-vous faire un pas à pas sur la procédure pour savoir ou le travail ne se fait pas !
      C'est important.
      Salutations.
      Le Pingou
      0
    3. Laperuk Messages postés 61 Statut Membre 34
       
      sur la procédure?? Je vous ai mis en bas les captures d'écran.. Ce qui ne va pas??
      Que ce soit sur la ligne A, ou B.. Ou autres rien ne bouge.. La formule n'est pas active pour ces lignes ou les cellules sont fusionnées..

      Par contre pour les ligne ou aucune cellule n'est fusionnée, tout fonctionne correctement.. la macro fonctionne.

      Je n'ai aucune erreur, juste que la macro ne fonctionne pas pour les cellules fusionnées.

      Je ne comprend pas comment détaillé plus qu'avec le fichier que j'ai joint précedemment..
      0
  20. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    En attendant l'explication pour un pas à pas sur la procédure, je vous prie d'essayer avec ce fichier sur des cellules non fusionnées et fusionnées et vous contrôlez que, selon le message, la valeur de la cellule est identique.
    Le fichier : https://www.cjoint.com/?fhmdXfjsfv
    Merci de votre réponse.
    0
  21. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    L'explication du pas à pas : https://www.cjoint.com/?fhpvVVvnfq
    0
    1. Laperuk Messages postés 61 Statut Membre 34
       
      Je n'aurai pas le temps de faire le pas à pas aujourd'hui.
      Mais pour répondre a ta question d'avant, lorsque je rentre un 1 dans les cellules non fusionnées, j'ai bien une fenêtre qui s'ouvre me disant que tel ou tel cellule à la valeur 0.
      Par contre pour les cellules fusionnées, aucun message rien...
      0
  • 1
  • 2