VB fonction "Sub Workbook_SheetChange"
Résolu
diabolo162
Messages postés
1002
Date d'inscription
Statut
Membre
Dernière intervention
-
diabolo162 Messages postés 1002 Date d'inscription Statut Membre Dernière intervention -
diabolo162 Messages postés 1002 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'utilise une macro qui colore des cellules en fonction du texte.
Mon soucis est que le texte des cellules a colorer change par liaison par une saisie sur une autre feuille.....Bref je ne sélectionne pas de cellule et donc sans selection ma macro ne fonctionne pas (grrrrrrrr!!!!)
Comment pourrait on faire pour que la macro s'execute automatiquement dès que le texte change dans la cellule (J'insiste sur le fait que le texte change par liaison et que les cellule ne sont donc pas actives)
Un grand merci d'avance pour ceux qui m'apporteront la solution .
Voici ma macro ci dessous :
J'utilise une macro qui colore des cellules en fonction du texte.
Mon soucis est que le texte des cellules a colorer change par liaison par une saisie sur une autre feuille.....Bref je ne sélectionne pas de cellule et donc sans selection ma macro ne fonctionne pas (grrrrrrrr!!!!)
Comment pourrait on faire pour que la macro s'execute automatiquement dès que le texte change dans la cellule (J'insiste sur le fait que le texte change par liaison et que les cellule ne sont donc pas actives)
Un grand merci d'avance pour ceux qui m'apporteront la solution .
Voici ma macro ci dessous :
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) Dim i As Integer, j As Long, Mfc As FormatCondition, c As Range, Ws1 As Worksheet On Error GoTo fin ' en cas de mauvaise manipulation, ça plante sur l'ordre suivant Application.EnableEvents = False Set Ws1 = Sheets("MFC") For i = 1 To Target.FormatConditions.Count Set Mfc = Target.FormatConditions(i) If UCase(Left(Mfc.Formula1, 7)) = "=MA_MFC" Then Ws1.Range("A1").Value = Target.Value Set c = Nothing For j = 2 To Ws1.Range("A65536").End(xlUp).Row If Ws1.Range("A" & j) = True Then Set c = Ws1.Range("A" & j) Exit For End If Next j If c Is Nothing Then Set c = Ws1.Range("A1") c.Copy Target.PasteSpecial (xlPasteFormats) Application.CutCopyMode = False End If Next i Application.EnableEvents = True fin: On Error GoTo 0 End Sub
A voir également:
- VB fonction "Sub Workbook_SheetChange"
- Fonction si et - Guide
- Vb - Télécharger - Langages
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Vb cable - Télécharger - Audio & Musique
31 réponses
Re,
Je serai absent jusqu'a demain soir, teste comme je te l'ai dit, les deux premiers tableaux et dis nous si c'est ce que tu attends.
Si tu n'y vois pas d'inconvénient, je supprimerais des post sans intérêt dans la discussion de sorte à retrouver rapidement les post constructifs
regarde l'userform avec mise en forme également
https://www.cjoint.com/?AJzxWzi36V1
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Je serai absent jusqu'a demain soir, teste comme je te l'ai dit, les deux premiers tableaux et dis nous si c'est ce que tu attends.
Si tu n'y vois pas d'inconvénient, je supprimerais des post sans intérêt dans la discussion de sorte à retrouver rapidement les post constructifs
regarde l'userform avec mise en forme également
https://www.cjoint.com/?AJzxWzi36V1
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Re,
Sympa ta proposition....j'adhere totalement!!!
juste 3 petites bricoles à modifier :
- Si je laisse une case vide dans le userform il me colore la cellule en violet...serait il possible de garder la cellule blanche?
- dans le userform, dans le champ "Plat" les caracteres sont en gras et pas les autres....
- quand je clic sur "valider" dans le userform, il me renvoi à chaque fois en haut de la feuille...est il possible de rester sur la ligne ...exemple si je travaille sur la ligne 30 j'aime apres l'execution de la macro me retrouver sur la meme ligne ...est ce possible?
Voila sinon c'est top et je t'en remercie.....
Sympa ta proposition....j'adhere totalement!!!
juste 3 petites bricoles à modifier :
- Si je laisse une case vide dans le userform il me colore la cellule en violet...serait il possible de garder la cellule blanche?
- dans le userform, dans le champ "Plat" les caracteres sont en gras et pas les autres....
- quand je clic sur "valider" dans le userform, il me renvoi à chaque fois en haut de la feuille...est il possible de rester sur la ligne ...exemple si je travaille sur la ligne 30 j'aime apres l'execution de la macro me retrouver sur la meme ligne ...est ce possible?
Voila sinon c'est top et je t'en remercie.....
Re,
Double clic sur Midi ou soir concerné, l'userform s'affiche, composer le menu et clic sur valider
pour effacer un menu
Double clic sur Midi ou soir concerné, l'userform s'affiche, valider sans rien sélectionner
Pour modifier un menu ou supprimer un plat clic sur le bouton Modifier les menus, modifier le ou les menus et clic sur le bouton Clic pour reprotéger la feuille
Lorsque le fichier te conviendra, on mettra un mot de passe pour les déprotections et centraliser les codes
https://www.cjoint.com/?AJBoliwnXLi
Double clic sur Midi ou soir concerné, l'userform s'affiche, composer le menu et clic sur valider
pour effacer un menu
Double clic sur Midi ou soir concerné, l'userform s'affiche, valider sans rien sélectionner
Pour modifier un menu ou supprimer un plat clic sur le bouton Modifier les menus, modifier le ou les menus et clic sur le bouton Clic pour reprotéger la feuille
Lorsque le fichier te conviendra, on mettra un mot de passe pour les déprotections et centraliser les codes
https://www.cjoint.com/?AJBoliwnXLi
Re,
C'est du super travail que tu fais...génial!
Je sais que j'en demande déjà beaucoup mais pour finaliser "userform"serait il possible de l'utiliser pour faire les modifications de menu? Il faudrait par exemple que "userform" affiche le menu existantde la feuil "création menu......"!
Cela permettrait d'enlever la liste déroulante.
Sur le userform, je tape les premieres lettre du plat, un seul plat est proposé en saisie automatique...serait il possible qu'il m'affiche toute la liste des plats qui débute par les 1er caractere sans avoir besoin de cliquer sur la liste déroulante?
Promis après je ne demanderai plus rien!!!
Merci encore beaucoup pour ton investigation.
C'est du super travail que tu fais...génial!
Je sais que j'en demande déjà beaucoup mais pour finaliser "userform"serait il possible de l'utiliser pour faire les modifications de menu? Il faudrait par exemple que "userform" affiche le menu existantde la feuil "création menu......"!
Cela permettrait d'enlever la liste déroulante.
Sur le userform, je tape les premieres lettre du plat, un seul plat est proposé en saisie automatique...serait il possible qu'il m'affiche toute la liste des plats qui débute par les 1er caractere sans avoir besoin de cliquer sur la liste déroulante?
Promis après je ne demanderai plus rien!!!
Merci encore beaucoup pour ton investigation.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re,
regarde si c'est ce que tu cherches, un autre effet de mise en forme conditionnelle sur l'userform menu Entrée
choisis tes effets et on termine ton projet
https://www.cjoint.com/?AJDwjcNtgLC
regarde si c'est ce que tu cherches, un autre effet de mise en forme conditionnelle sur l'userform menu Entrée
choisis tes effets et on termine ton projet
https://www.cjoint.com/?AJDwjcNtgLC
Re,
Sur l'userform, je trouve l'effet génial sur "l'entrée"....j'ai toujours la liste déroulante mais c'est pas un soucis.....c'est déja un travail formidable!!!!
merci mille fois.
Sur l'userform, je trouve l'effet génial sur "l'entrée"....j'ai toujours la liste déroulante mais c'est pas un soucis.....c'est déja un travail formidable!!!!
merci mille fois.
Le dernier fichier que j'ai recupere est celui du poste "#31"
Je voulais juste savoir si c'est possible d'enlever la liste déroulante dans l'userform et que la liste s'affiche directement selon les 1eres lettres saisies (cela m'éviterait de cliquer sur la liste déroulante a chaque fois!!!)
apres ca serait bon!c'est du bon boulot!!
Sur le dernier fichier envoyé, je souhaiterais avoir la mise en forme comme "entrée" dans l'userform....c'est sympa
Je voulais juste savoir si c'est possible d'enlever la liste déroulante dans l'userform et que la liste s'affiche directement selon les 1eres lettres saisies (cela m'éviterait de cliquer sur la liste déroulante a chaque fois!!!)
apres ca serait bon!c'est du bon boulot!!
Sur le dernier fichier envoyé, je souhaiterais avoir la mise en forme comme "entrée" dans l'userform....c'est sympa
Re,
Je ne vois pas le dernier fichier que je t'ai posté, je le reposte.
Tu as trois effets au choix de mise en forme de l'userform.
J'ai conservé les listes déroulantes dans l'userform mais elle se comporte de deux façons, soit tu les utilises de façon classique en sélectionnant le menu dans la liste déroulante ou tu saisis manuellement le plat, exemple si tu saisis la lettre a tu auras le premier plat de la liste commençant par a, mais au fur et à mesure que tu compléteras la saisie le plat s'adaptera à chaque lettre ajoutée
https://www.cjoint.com/?AJEsS1vidj3
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Je ne vois pas le dernier fichier que je t'ai posté, je le reposte.
Tu as trois effets au choix de mise en forme de l'userform.
J'ai conservé les listes déroulantes dans l'userform mais elle se comporte de deux façons, soit tu les utilises de façon classique en sélectionnant le menu dans la liste déroulante ou tu saisis manuellement le plat, exemple si tu saisis la lettre a tu auras le premier plat de la liste commençant par a, mais au fur et à mesure que tu compléteras la saisie le plat s'adaptera à chaque lettre ajoutée
https://www.cjoint.com/?AJEsS1vidj3
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
le fichier est tres bien comme ca!!!! je garde la mise en forme de "l'entrée" et du "plat" dans le userform....
Re,
j'ai créé une feuille Explications que tu pourras supprimer, j'ai annoté les différents codes, ces annotations sont en vert.
Utilise ce dernier fichier, j'ai apporté une modification pour les protections de sorte à protéger ou déprotéger d'un coup toutes les feuilles du classeur
http://www.cijoint.fr/cjlink.php?file=cj201111/cijhSwGVqt.xls
si tes attentes sont satisfaites, n'oublie pas de mettre le statut de la discussion en résolu ou demande moi de le faire
j'ai créé une feuille Explications que tu pourras supprimer, j'ai annoté les différents codes, ces annotations sont en vert.
Utilise ce dernier fichier, j'ai apporté une modification pour les protections de sorte à protéger ou déprotéger d'un coup toutes les feuilles du classeur
http://www.cijoint.fr/cjlink.php?file=cj201111/cijhSwGVqt.xls
si tes attentes sont satisfaites, n'oublie pas de mettre le statut de la discussion en résolu ou demande moi de le faire