Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

code feuille de travail

J

JEAN MICHEL

Guest
bonjour a tous et bon weekend

je viens d'integrer une macro sur les liste deroulante double de TI (merci)mais lorsque j'execute les autres macros celle ci qui est sur le code feuille de travail s'execute et me mets la pagaille ,elle execute lorsqu'ele rencontre une ligne de ce type Range("B4:F29").Select

ci joint un extrait du classeur et en executant la macro1 pas pas en peut voir ce qui se passe
Y t il un moyen d'arreter cette fonction au depart des macros
merci
 

Pièces jointes

  • Classeurexempleliste_deroulante.zip
    10.4 KB · Affichages: 12
@

@+Thierry

Guest
Bonjour Jean Michel, le Forum enfin bonsoir

Huuum si tu as lu certain de mes posts j'ai déclaré la guerre au macros contenant des Select de partout...

Logiquement le code de Ti doit justement s'appuyer sur Selection_Change (je suppose)... Donc si ta macro fait des selections c'est tout à fait normal que la macro évènementielle s'éxécute...

Alors soit tu Optimises ton code en supprimant tous les "Select" par exemple :
Range("A1").Select
ActiveCell.FormulaR1C1 = "555"
Range("B1").Select
ActiveCell.FormulaR1C1 = "=RC[-1]"

Peut devenir tout simplement
Range("A1") = "555"
Range("B1") = Range("A1")

Ou amors il faut se lancer dans une Boolean Publique qui fera office de verrou pour le code de Ti par exemple :

Public Verrou As Boolean '<<<<<<< Top de Module Standard

Sub TaMacro ()
Verrou = True

Range("A1").Select
ActiveCell.FormulaR1C1 = "555"
Blag Blah
End Sub

Dans le Private Module de la Feuille en Question :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Verrou = True Then Exit Sub
'La Macro de Ti......
End Sub

Mais cette dernière solution est un peu Usine à gaz, vaut mieux supprimer les Select !!

Bon Courage
@+Thierry
 
J

JEAN MICHEL

Guest
bonsoir thierry et le forum que j'ai decouvert recemment

merci de la reponse , j'ai bien essayer de bricoler cette macro mais rien ni fait si tu peux me corriger ces quelques lignes pour donner un exemple concernant mon applicaton, j'en serais tres heureux merci


MsgBox ("VOUS DEVEZ SELECTIONNER UNE DATE AU DESSUS")
Else
Sheets("PREVISION").Select
ActiveSheet.Unprotect

If Range("I1") = Range("N4") Then
Range("n475").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
Range("c1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("B1").Select
Sheets("PREVISION").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("B4").Select
Sheets("Feuil1").Select
Range("c1").Select


ElseIf Range("I1") = Range("S4") Then
Range("S4:U75").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
 
@

@+Thierry

Guest
Re Jean Michel

Huum je n'ai pas fait tourner mais ce devrait donner ceci :


MsgBox ("VOUS DEVEZ SELECTIONNER UNE DATE AU DESSUS")
Else
Sheets("PREVISION").Unprotect

If Range("I1") = Range("N4") Then
Sheets("PREVISION").Range("n475").Copy _
Destination:=Worksheets("Feuil1").Range("C1")
Sheets("PREVISION").Range("N475").ClearContents

ElseIf Range("I1") = Range("S4") Then
Sheets("PREVISION").Range("S4:U75").Copy _
Destination:=Worksheets("Feuil1").Range("C1")
Sheets("PREVISION").Range("S4:U75").ClearContents

ETC...

Bonne Programmation
@+Thierry
 
J

JEAN MICHEL

Guest
bonsoir Thierry et le forum

apres quelques heures de dur labeur me revoila, j'ai fait quelques modif suivant tes conseils ca marche sans mettre la pagaille mais les 4 lignes suivantes de la macro declenche la macro évènementielle

Sheets("Feuil1").Range("k1").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 'erreur

Sheets("Feuil1").Range("b1").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False 'erreur
Sheets("PREVISION").Range("n4:q75").ClearContents 'erreur

bonne soiree a+


ActiveSheet.Unprotect
Application.ScreenUpdating = False
If Range("h10") = ("saisie non faite") Then
reponse = MsgBox("VOUS DEVEZ FINIR LA SAISIE DE LA JOURNEE EN COURS")
Else
Selection.Copy
' Range("k1").Select
Sheets("Feuil1").Range("k1").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 'erreur
If Range("k1") <= "00:00:00" Then
MsgBox ("VOUS DEVEZ SELECTIONNER UNE DATE AU DESSUS")
Else
Sheets("PREVISION").Select
ActiveSheet.Unprotect

If Range("k1") = Range("o4") Then
Sheets("PREVISION").Range("n4:q75").Copy
Sheets("Feuil1").Range("b1").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False 'erreur
Sheets("PREVISION").Range("n4:q75").ClearContents 'erreur
Sheets("Feuil1").Select









ActiveSheet.Unprotect
Application.ScreenUpdating = False
If Range("h10") = ("saisie non faite") Then
reponse = MsgBox("VOUS DEVEZ FINIR LA SAISIE DE LA JOURNEE EN COURS")
Else
Selection.Copy
' Range("k1").Select
Sheets("Feuil1").Range("k1").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 'erreur
If Range("k1") <= "00:00:00" Then
MsgBox ("VOUS DEVEZ SELECTIONNER UNE DATE AU DESSUS")
Else
Sheets("PREVISION").Select
ActiveSheet.Unprotect

If Range("k1") = Range("o4") Then
Sheets("PREVISION").Range("n4:q75").Copy
Sheets("Feuil1").Range("b1").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False 'erreur
Sheets("PREVISION").Range("n4:q75").ClearContents 'erreur
Sheets("Feuil1").Select
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…