lancement d'une macro automatiquement si valeur dans A1=1

Le
Patcas
Bonjour

Je voudrais lancer automatiquement une macro quand A1= 1
Dans cette cellule j'ai une FORMULE qui me donne 1 ou 0.

Voila ce que j'ai ecrit mais ça coince

Sub Copietableau()
ActiveSheet.Unprotect
If Range("A1").Value = "$1" Then
ActiveSheet.Range("N20:X32").Copy _
Destination:¬tiveSheet.Range("N65000").End(xlUp).Offset(1, 0)
ActiveWorkbook.Save
Range("N65000").End(xlUp).Offset(1, 0).Select
ActiveSheet.Protect
End If
End Sub

Merci pour votre aide.
Patrice C.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
LSteph
Le #4234491
Bonjour,


voici un exemple à mettre dans le code de la feuille

''''''
Private Sub WorkSheet_Calculate()
If [a1].Value <> 1 Then Exit Sub
On error goto fin
application.enableeventsúlse
[n20:x32].Copy Destination:=[n65536].End(xlUp)(2)
fin:
application.enableevents=true
End Sub
''''''

Et pour le reste fais comme tu le sens:

activeworkbook.save 'attention c'est parfois redoutable
'de systématiser ce genre d'instruction particulièrement
sur un tel évennement.

Surtout si ta condition est que a1 soit égal à 1
ce qui arrivera à chaque recalcul tant qu'il est égal à 1



Pour la protection mieux vaudrait la mettre une fois pour toutes
dans le ThisWorkbook avec seulement l'interface utilisateur,
les macros ayant droit d'action sans avoir à dé ou re protéger chaque
fois..

Private Sub Workbook_open()
Dim sh as worksheet
For each sh in ThisWorkbook
sh.protect password:="toto", userinterfaceonly:=true
next
end sub

'Cdlt

'lSteph


Bonjour

Je voudrais lancer automatiquement une macro quand A1= 1
Dans cette cellule j'ai une FORMULE qui me donne 1 ou 0.

Voila ce que j'ai ecrit mais ça coince...

Sub Copietableau()
ActiveSheet.Unprotect
If Range("A1").Value = "$1" Then
ActiveSheet.Range("N20:X32").Copy _
Destination:¬tiveSheet.Range("N65000").End(xlUp).Offset(1, 0)
ActiveWorkbook.Save
Range("N65000").End(xlUp).Offset(1, 0).Select
ActiveSheet.Protect
End If
End Sub

Merci pour votre aide.
Patrice C.




Patcas
Le #4234441
Merci pour ta reponse mais
dans ta macro
voici un exemple à mettre dans le code de la feuille
Private Sub WorkSheet_Calculate()
If [a1].Value <> 1 Then Exit Sub
On error goto fin
application.enableeventsúlse
[n20:x32].Copy Destination:=[n65536].End(xlUp)(2)
fin:
application.enableevents=true
End Sub



ça ne fonctionne pas avec <>1
par contre, si je remplace par =1
ça fonctionne a chaque changement de valeur dans la cellule
donc ça ne me va pas non plus

As tu une explication car je ne suis pas un "fort en macro"

Merci d'avance

Patrice C.



"LSteph" %23xvP%
Bonjour,


voici un exemple à mettre dans le code de la feuille

''''''
Private Sub WorkSheet_Calculate()
If [a1].Value <> 1 Then Exit Sub
On error goto fin
application.enableeventsúlse
[n20:x32].Copy Destination:=[n65536].End(xlUp)(2)
fin:
application.enableevents=true
End Sub
''''''

Et pour le reste fais comme tu le sens:

activeworkbook.save 'attention c'est parfois redoutable
'de systématiser ce genre d'instruction particulièrement
sur un tel évennement.

Surtout si ta condition est que a1 soit égal à 1
ce qui arrivera à chaque recalcul tant qu'il est égal à 1



Pour la protection mieux vaudrait la mettre une fois pour toutes
dans le ThisWorkbook avec seulement l'interface utilisateur,
les macros ayant droit d'action sans avoir à dé ou re protéger chaque
fois..

Private Sub Workbook_open()
Dim sh as worksheet
For each sh in ThisWorkbook
sh.protect password:="toto", userinterfaceonly:=true
next
end sub

'Cdlt

'lSteph


Bonjour

Je voudrais lancer automatiquement une macro quand A1= 1
Dans cette cellule j'ai une FORMULE qui me donne 1 ou 0.

Voila ce que j'ai ecrit mais ça coince...

Sub Copietableau()
ActiveSheet.Unprotect
If Range("A1").Value = "$1" Then
ActiveSheet.Range("N20:X32").Copy _
Destination:¬tiveSheet.Range("N65000").End(xlUp).Offset(1, 0)
ActiveWorkbook.Save
Range("N65000").End(xlUp).Offset(1, 0).Select
ActiveSheet.Protect
End If
End Sub

Merci pour votre aide.
Patrice C.




Patcas
Le #4234431
J'ai resolu mon probleme
j'ai rajouté
Private Sub Worksheet_Activate()
valeur = Range("a1")
End Sub
et tout fonctionne
Merci
Bon WE
Patrice C.

"Patcas" news: wxwIh.67$
Merci pour ta reponse mais
dans ta macro
voici un exemple à mettre dans le code de la feuille
Private Sub WorkSheet_Calculate()
If [a1].Value <> 1 Then Exit Sub
On error goto fin
application.enableeventsúlse
[n20:x32].Copy Destination:=[n65536].End(xlUp)(2)
fin:
application.enableevents=true
End Sub



ça ne fonctionne pas avec <>1
par contre, si je remplace par =1
ça fonctionne a chaque changement de valeur dans la cellule
donc ça ne me va pas non plus

As tu une explication car je ne suis pas un "fort en macro"

Merci d'avance

Patrice C.



"LSteph" %23xvP%
Bonjour,


voici un exemple à mettre dans le code de la feuille

''''''
Private Sub WorkSheet_Calculate()
If [a1].Value <> 1 Then Exit Sub
On error goto fin
application.enableeventsúlse
[n20:x32].Copy Destination:=[n65536].End(xlUp)(2)
fin:
application.enableevents=true
End Sub
''''''

Et pour le reste fais comme tu le sens:

activeworkbook.save 'attention c'est parfois redoutable
'de systématiser ce genre d'instruction particulièrement
sur un tel évennement.

Surtout si ta condition est que a1 soit égal à 1
ce qui arrivera à chaque recalcul tant qu'il est égal à 1



Pour la protection mieux vaudrait la mettre une fois pour toutes
dans le ThisWorkbook avec seulement l'interface utilisateur,
les macros ayant droit d'action sans avoir à dé ou re protéger chaque
fois..

Private Sub Workbook_open()
Dim sh as worksheet
For each sh in ThisWorkbook
sh.protect password:="toto", userinterfaceonly:=true
next
end sub

'Cdlt

'lSteph


Bonjour

Je voudrais lancer automatiquement une macro quand A1= 1
Dans cette cellule j'ai une FORMULE qui me donne 1 ou 0.

Voila ce que j'ai ecrit mais ça coince...

Sub Copietableau()
ActiveSheet.Unprotect
If Range("A1").Value = "$1" Then
ActiveSheet.Range("N20:X32").Copy _
Destination:¬tiveSheet.Range("N65000").End(xlUp).Offset(1, 0)
ActiveWorkbook.Save
Range("N65000").End(xlUp).Offset(1, 0).Select
ActiveSheet.Protect
End If
End Sub

Merci pour votre aide.
Patrice C.








LSteph
Le #4234351
Ce que j'avais proposé fonctionne parfaitement avec ce que j'avais
compris de ta demande

tu voulais que si la valeur de A1 soit 1 la macro s'execute
sachant que a1 était l'objet d'un calcul.

ce que tu évoques n'a rien à voir , j'en déduis que j'avais mal compris!

même si sincèrement je ne comprends ni pourquoi ni comment,
si tout compte fait tu as résolu ton pb c'est l'essentiel!

@+

lSteph

J'ai resolu mon probleme
j'ai rajouté
Private Sub Worksheet_Activate()
valeur = Range("a1")
End Sub
et tout fonctionne
Merci
Bon WE
Patrice C.

"Patcas" news: wxwIh.67$
Merci pour ta reponse mais
dans ta macro
voici un exemple à mettre dans le code de la feuille
Private Sub WorkSheet_Calculate()
If [a1].Value <> 1 Then Exit Sub
On error goto fin
application.enableeventsúlse
[n20:x32].Copy Destination:=[n65536].End(xlUp)(2)
fin:
application.enableevents=true
End Sub


ça ne fonctionne pas avec <>1
par contre, si je remplace par =1
ça fonctionne a chaque changement de valeur dans la cellule
donc ça ne me va pas non plus

As tu une explication car je ne suis pas un "fort en macro"

Merci d'avance

Patrice C.



"LSteph" %23xvP%
Bonjour,


voici un exemple à mettre dans le code de la feuille

''''''
Private Sub WorkSheet_Calculate()
If [a1].Value <> 1 Then Exit Sub
On error goto fin
application.enableeventsúlse
[n20:x32].Copy Destination:=[n65536].End(xlUp)(2)
fin:
application.enableevents=true
End Sub
''''''

Et pour le reste fais comme tu le sens:

activeworkbook.save 'attention c'est parfois redoutable
'de systématiser ce genre d'instruction particulièrement
sur un tel évennement.

Surtout si ta condition est que a1 soit égal à 1
ce qui arrivera à chaque recalcul tant qu'il est égal à 1



Pour la protection mieux vaudrait la mettre une fois pour toutes
dans le ThisWorkbook avec seulement l'interface utilisateur,
les macros ayant droit d'action sans avoir à dé ou re protéger chaque
fois..

Private Sub Workbook_open()
Dim sh as worksheet
For each sh in ThisWorkbook
sh.protect password:="toto", userinterfaceonly:=true
next
end sub

'Cdlt

'lSteph


Bonjour

Je voudrais lancer automatiquement une macro quand A1= 1
Dans cette cellule j'ai une FORMULE qui me donne 1 ou 0.

Voila ce que j'ai ecrit mais ça coince...

Sub Copietableau()
ActiveSheet.Unprotect
If Range("A1").Value = "$1" Then
ActiveSheet.Range("N20:X32").Copy _
Destination:¬tiveSheet.Range("N65000").End(xlUp).Offset(1, 0)
ActiveWorkbook.Save
Range("N65000").End(xlUp).Offset(1, 0).Select
ActiveSheet.Protect
End If
End Sub

Merci pour votre aide.
Patrice C.











Patcas
Le #4234101
Ne t'inquiete pas c'est moi qui est "presque nul"
ça fonctionne comme tu me l'avais ecrit
Je pense que la protection devait gener
je les ai enlevées
Enfin ça marche c'est le principal
encore Merci
Patrice C.


"LSteph"
Ce que j'avais proposé fonctionne parfaitement avec ce que j'avais compris
de ta demande

tu voulais que si la valeur de A1 soit 1 la macro s'execute
sachant que a1 était l'objet d'un calcul.

ce que tu évoques n'a rien à voir , j'en déduis que j'avais mal compris!

même si sincèrement je ne comprends ni pourquoi ni comment,
si tout compte fait tu as résolu ton pb c'est l'essentiel!

@+

lSteph

J'ai resolu mon probleme
j'ai rajouté
Private Sub Worksheet_Activate()
valeur = Range("a1")
End Sub
et tout fonctionne
Merci
Bon WE
Patrice C.

"Patcas" news: wxwIh.67$
Merci pour ta reponse mais
dans ta macro
voici un exemple à mettre dans le code de la feuille
Private Sub WorkSheet_Calculate()
If [a1].Value <> 1 Then Exit Sub
On error goto fin
application.enableeventsúlse
[n20:x32].Copy Destination:=[n65536].End(xlUp)(2)
fin:
application.enableevents=true
End Sub


ça ne fonctionne pas avec <>1
par contre, si je remplace par =1
ça fonctionne a chaque changement de valeur dans la cellule
donc ça ne me va pas non plus

As tu une explication car je ne suis pas un "fort en macro"

Merci d'avance

Patrice C.



"LSteph" %23xvP%
Bonjour,


voici un exemple à mettre dans le code de la feuille

''''''
Private Sub WorkSheet_Calculate()
If [a1].Value <> 1 Then Exit Sub
On error goto fin
application.enableeventsúlse
[n20:x32].Copy Destination:=[n65536].End(xlUp)(2)
fin:
application.enableevents=true
End Sub
''''''

Et pour le reste fais comme tu le sens:

activeworkbook.save 'attention c'est parfois redoutable
'de systématiser ce genre d'instruction particulièrement
sur un tel évennement.

Surtout si ta condition est que a1 soit égal à 1
ce qui arrivera à chaque recalcul tant qu'il est égal à 1



Pour la protection mieux vaudrait la mettre une fois pour toutes
dans le ThisWorkbook avec seulement l'interface utilisateur,
les macros ayant droit d'action sans avoir à dé ou re protéger chaque
fois..

Private Sub Workbook_open()
Dim sh as worksheet
For each sh in ThisWorkbook
sh.protect password:="toto", userinterfaceonly:=true
next
end sub

'Cdlt

'lSteph


Bonjour

Je voudrais lancer automatiquement une macro quand A1= 1
Dans cette cellule j'ai une FORMULE qui me donne 1 ou 0.

Voila ce que j'ai ecrit mais ça coince...

Sub Copietableau()
ActiveSheet.Unprotect
If Range("A1").Value = "$1" Then
ActiveSheet.Range("N20:X32").Copy _
Destination:¬tiveSheet.Range("N65000").End(xlUp).Offset(1, 0)
ActiveWorkbook.Save
Range("N65000").End(xlUp).Offset(1, 0).Select
ActiveSheet.Protect
End If
End Sub

Merci pour votre aide.
Patrice C.












Publicité
Poster une réponse
Anonyme