Probleme de macro avec fonction si

bonjour à tous .

je vous explique en quelques lignes mon probleme.

j'ai enregistré une macro qui copie et insere des cellules contenant du texte dans une cellule d'une autre feuille. jusque là tout va bien .

ensuite dans ma feuille j'ai cree une fonction "si" qui lorsque la cellule selectionné affiche le texte voulu alors elle appelle la macro enregistré.

une fois que dans le menu deroulant de la cellule selectionné je choisis le terme qui enclenche la macro celle ci se repete à l'infini et je suis obbligé d'appuyer sur echap pour arreter la casse !!!!

pourriez vous m'aider pour que celle ci ne se repete qu'une fois.

je vous remercie d'avance

ci-joint la macro enregistré et en dessus la fonction de la feuille

Sub orga1()

'

' orga1 Macro

' Macro enregistrée le 18/02/2009 par Installateur

'

'

Sheets("Feuil2").Select

Range("D3:F8").Select

Selection.Copy

Sheets("Feuil3").Select

Range("C45").Select

Selection.Insert Shift:=xlDown

Range("F53").Select

End Sub

If Cells(43, 4) = "ORGANISATION DES TRAVAUX:" Then

Call orga1

Else

End If

Bonjour

et si tu enlevais "else"?

cordialement

ps, pour info, tu peux aussi reduire ta macro comme cela:

Sub orga1()

Range("Feuil2!D3:F8").Copy

Range("Feuil3!C45").Insert Shift:=xlDown

Application.CutCopyMode = False

End Sub

ça ne change rien au probleme.

si tu veux jeter un coup d'oeil je te joins le fichier il suffit cue tu ailles dans la feuille 3 et que dans le menu deroulant de la touche d7 tu selectionnes ORGANISATION DES TRAVAUX: et là patatra!!!!!!!!

voilà je suis vraiment en crise! lol

en fait mon fichier et trop gros je ne peux pas le joindre

le probleme vient il peut etre d'un defaut dans la declaration de la la feuille mais là je n'y connait absolument rien .

je vous remercie par avance

Sub Worksheet_Change(ByVal Target As Range)

[color=violet] If Cells(30, 8) = "gros œuvre" And Cells(28, 8) = "santé " Then

Call ref1

Else

re

tu peux mettre ta macro en entier (if)

ou sinon, essaie de réduire ton fichier en y laissant que ce qui concerne ton probleme

cordialement

re

essaie cela

Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$43" Then
If Cells(43, 4) = "ORGANISATION DES TRAVAUX:" Then
Call orga1
Else
End If
End If
End Sub

si j'ai bien compris, ta macro se lancait a chaque fois que ta feuille change et donc il y avait toujours "ORGANISATION DES TRAVAUX:" dans la cellule il relancais donc sans fin "orga1"

cordialement

Bonjour,

Ton fichier n'est pas passé. Essaye de zipper et de renvoyer.

excuses moi maguetlolo pour le temps de reponse

j'ai essayé tes lignes de commandes et là plus rien ne marche c'est à dire qu'il n'appelle plus la maccro orga1

je pense que c'est une erreur de conception en vba mais je suis vraiment nul

re:

dans le module de la feuil3

rajoute

If Target.Address = "$D$43" Then

au dessus de la ligne

If Cells(43, 4) = "ORGANISATION DES TRAVAUX:" Then

et mets "

end if

" en dessous de l'autre "end if"

cordialement

je suis vraiment desolé de vous olliciter autant mais cela ne marche pas .

il ne lance toujours pas la macro orga 1

maguetlolo , avez vous recu mon fichier free??

re,

oui je l'ai eu et ca fonctionne chez moi

renvoie le fichier que tu as modifié

cordialement

Re

j'ai trouvé pourquoi ma modif ne fonctionnais pas

en fait elle fonctionne si tu change toi-meme la valeur de la cellule

mais vu que la valeur de la cellule est le resultat d'une formule, cela ne fonctionne pas.

je ne sait pas resoudre cela mais je suis sur que quelqu'un sur le forum saura te repondre.

je vais suivre ce fil car cela m'interesse, je n'ai malheureusement pas le temps de chercher car je doit partir au boulot mais si la reponse ne viens pas, je chercherais de mon coté.

bonne chance a toi

Cordialement

Bonjour

On voudrait bien aider, mais sans le fichier....

Pour info, pour intercepter le résultat d'une formule, il faut utiliser l'évènement Worksheet_Calculate()....

est ce que tu m'expliquer comment marche worksheet_calculate() comment je vais l'integrer dans ma fonction si??

merci d'avance

Re-,

Le plus simple, en tout début de code, tu mets :

Application.EnableEvents = False

et, surtout, en fin de code, avant le End sub :

Application.EnableEvents = True

Pffiou, une usine à gaz, ton truc

Déjà, supprimes tous les Else....

je cherche à simplifier ton code....

merci beaucoup felix

Re-,

regarde le fichier joint (il est vide, il n'y a que les codes)

copie le code de la feuille3, et remplace tout ton ancien code

Et regarde les modules 2 et 6, j'ai modifié le code

https://www.excel-pratique.com/~files/doc/charly_v1.xls

il me dit qu'il y a une erreur de compilation

Re-,

oui, mais??????

A quel niveau?

dans quel module?

Quel message exact?

Rechercher des sujets similaires à "probleme macro fonction"