begin process at 2012 02 15 11:01:31
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

VBA

 > 

[HELP.ME] Exécuter une macro via une formule, si on modifie certaines cellules


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[HELP.ME] Exécuter une macro via une formule, si on modifie certaines cellules

vendredi 19 août 2005 à 09:18:55 | [HELP.ME] Exécuter une macro via une formule, si on modifie certaines cellules

Sp00ky

Bonjour,

Je voudrais savoir s'il est possible (et si oui comment) de lancer une macro via une fonction dans une cellule (sous Excel 2003)

Cette macro serait appellée automatiquement lorsqu'on modifie des cellules en particulier, sur la ligne ou se trouve la formule

Aussi autre question : est-il possible, sans passer par une macro, de changer les polices et le fond d'une cellule en fonction du résultat.
Par ex. : =SI(condition, en gras et fond rouge : "ok", en gras et fond noir : "pas bon")

Merci d'avance !




$p00ky
______________________________________________
.:: KoC-FR ::. Alliance Francophone Kings of Chaos
Venez jouer au meilleur MMORPG gratuit et facile !

vendredi 19 août 2005 à 09:30:18 | Re : [HELP.ME] Exécuter une macro via une formule, si on modifie certaines cellules

mrdep1978

Réponse acceptée !
Salut,

Pour ta 1e question, tu peux utiliser l'événement Change de l'objet Worksheet (si tu veux gérer ta fonction dans une seule feuille) ou l'événement SheetChange de l'objet Workbook (si tu veux qu'il se déclenche pour plusieurs feuilles du fichier Excel.

Pour répondre à ta 2e question, il faut que tu ailles voir dans le menu "Format", "Mise en forme automatique" : Pour une cellule (ou une plage de cellules), tu peux donner jusqu'à 3 conditions et formats différents.
vendredi 19 août 2005 à 09:31:22 | Re : [HELP.ME] Exécuter une macro via une formule, si on modifie certaines cellules

Paladin2107

Réponse acceptée !
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then
call TaMacro
End If
End Sub
Couscous
vendredi 19 août 2005 à 09:34:58 | Re : [HELP.ME] Exécuter une macro via une formule, si on modifie certaines cellules

Paladin2107

If Cells(1, 1).Value = "ok" Then
    Range("A1").Select
    Selection.Font.ColorIndex = 3
    Selection.Font.Bold = True
ElseIf Cells(1, 2).Value = "pas bon" Then
    Range("B1").Select
    Selection.Font.Bold = True
    Selection.Font.ColorIndex = 0
End If

Couscous
vendredi 19 août 2005 à 09:54:55 | Re : [HELP.ME] Exécuter une macro via une formule, si on modifie certaines cellules

Sp00ky

Merci pour la seconde question c'est exactement ce que je cherchais ;)

Pour la première question par contre, en fait je ne voudrais pas tout à fait ca ...

Je voudrais appeller la macro par une fonction dans une cellule :
Par ex. =MACRO
Ou Macro est une de mes macros enregistrées dans les Modules

Cependant, cette fonction (qui donc n'execute que la macro), ne devrait s'executer que s'il y'a une modification d'une des cellules de la ligne ou se trouve la cellule de la fonction.

Comme si c'était une fonction genre =SI(cellules_modifiées; execute_macro; sinon rien)

Et la macro repererait la ligne de la cellule qui l'appelle pour effectuer les opérations dans celle ci.

Je ne sais pas si c'est possible ....

En fait, c'est juste car je n'arrive pas à faire ce que je veux juste avec les formules (sans macro VBA) : compter le nombre de cellules avec du texte sur la ligne ou est la fonction, sachant que certaines cellules peuvent etre fusionnées, et donc il compte le texte uniquement dans la premiere du groupe de cellule, et detecte les autres lignes comme étant vides ...
En VBA, je peux lui dire : si la cellule est fusionnée, tu regardes si la premiere de la fusion contient du texte ....
Mais pas une formule j'y arrive pas ... d'ou l'interet de passer par la macro...

Cependant une macro qui tourne tout le temps sur chaque ligne, c'est impossible niveau mémoire. Donc je voudrais faire appeller cette macro que s'il y'a des modifications sur la ligne, à la maniere d'une fonction ...

Merci d'avance !


$p00ky
______________________________________________
.:: KoC-FR ::. Alliance Francophone Kings of Chaos
Venez jouer au meilleur MMORPG gratuit et facile !

vendredi 19 août 2005 à 10:01:17 | Re : [HELP.ME] Exécuter une macro via une formule, si on modifie certaines cellules

Sp00ky

Ooops je n'avais pas vu les réponses de Paladin2107 ...

Pour ce sub :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then
call TaMacro
End If
End Sub

If Target.Adress = "$A$1" est en fait la plage que je veux tester ?

Je voudrais juste que dès qu'il y'a un changement dans une cellule, connaitre la ligne ou a eu lieu le changement (ou les lignes ou ont eu lieu les changements) et executer la macro sur ces lignes ...


$p00ky
______________________________________________
.:: KoC-FR ::. Alliance Francophone Kings of Chaos
Venez jouer au meilleur MMORPG gratuit et facile !

vendredi 19 août 2005 à 10:20:26 | Re : [HELP.ME] Exécuter une macro via une formule, si on modifie certaines cellules

Sp00ky

Je viens de comprendre et faire marcher cette fonction :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
For Each Cellule In Selection
call Macro(Selection.Row) ' ou j'ai une public fonction nommée Macro
Next
End Sub

Je récupere bien les lignes sur lesquelles ont eu lieu les changements ...

C'est exactement le meme principe que je veux, sauf que là ca s'execute a chaque changement de cellule, je voudrais que ca ne s'execute qu'a chaque modification du contenu d'une cellule.

Ceci existe t-il ?



$p00ky
______________________________________________
.:: KoC-FR ::. Alliance Francophone Kings of Chaos
Venez jouer au meilleur MMORPG gratuit et facile !

vendredi 19 août 2005 à 10:35:31 | Re : [HELP.ME] Exécuter une macro via une formule, si on modifie certaines cellules

Sp00ky

Yes, j'ai réussi !!

Merci à vous deux, voilà ce que je cherchais exactement pour ma premiere fonction:

Private Sub Worksheet_Change(ByVal Target As Range)
For Each Cellule In Target
nouvelle = Cellule.Row
If nouvelle <> old Then
Call Ma_Fonction(Cellule.Row) ' J'appelle ma fonction publique
End If
old = Cellule.Row
Next
End Sub


MERCI !!


$p00ky
______________________________________________
.:: KoC-FR ::. Alliance Francophone Kings of Chaos
Venez jouer au meilleur MMORPG gratuit et facile !



Cette discussion est classée dans : help, macro, fond, cellules, modifie


Répondre à ce message

Sujets en rapport avec ce message

MACRO WORD !! need help !! [ par kimsRE ] help me !!!comment tester dans une macro word en vb si on est sur la derniere page d'un document ???exemple : verifier ke dans un document de X je sui MACRO WORD !! need help !! [ par kimsRE ] help me !!!comment tester dans une macro word en vb si on est sur la derniere page d'un document ???exemple : verifier ke dans un document de X je sui macro ???? HELP ????? [ par yban ] bonjour,je voudrais executer une macro à l'ouverture d'un fichier excel sans rien demander à l'utilisateur.Comment cela est il possible?????merci d'av Macro VBA - Help ! [ par jpgmala ] Quel est le code VBA (sous Excel) pour récupérer dans une variable le texte d'un bouton quand on clique dessus ? En effet dans ma feuille j'ai positio recherche DOC sur macro HELP WORKSHOP [ par pierchons ] Salut,je recherche de la Doc (en francais) sur les macros pour Help workshop, style Extinsertitem, insertitem, ...pour aller plus loin dans mon fichie Prb de macro d'ouverture de fichier, HELP! [ par caro999 ] Bonjour, j'ai créé des fichiers Excels qui ont tous des macros à l'ouverture et qui fonctionnent normalement. PAr contre j'ai voulu créer un fichier " HELP! Macro Excel et Requete SQL HELP ! [ par titosolteron ] Bonjour j'essaye actuellement de construire une macro VB sous excel pour rapatrier les donnees d'un AS400j'ai constuit un fichier .dqy avec la requete Executer une formule excel grace a une macro [ par congru ] Bonjour a tous, Pour info général je bosse sous excel 97 et "jouvre" et "IsInt1" sont des fonctions que j'ai faite.Voici mon probleme :Dans toutes les MACRO HELP ! [ par bidochig ] Salut !je suis en train de faire une macromais je suis une bille... déjà, je voudrais que la macro se lance dès que j'ouvre mon .docensuite, ma macro Help! Empecher execution macro excel... [ par caro999 ] Bonjour,Je souhaite ouvrir un classeur Excel par VB en désactivant les macros. Si quelqu'un a une suggestion, ça m'aiderait vraiment :)Merci!


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,733 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales