Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1809 connectés 

 


Dernière réponse
Sujet : question de Visual Basic
nur

jujugoldman a écrit a écrit :

je te rassure tu as bien compris  
ca devrait marcher...enfin  je veux dire c'est ce que je veux faire. Je le test et je te tient au courrant
en tout cas merci Beaucoup  pour ton aide  




 
 
En faite pour que cela fonctione il faut remplacer ces 2 lignes dans Worksheet_change:
MsgBox ("la cellule " & Range("A1" ).Offset(i).Address & "  a changee" )
 Sheets("feuil2" ).Range("a1" ).Offset(i) = Range("A1" ).Offset
 
par :reponse=MsgBox ("la cellule " & Range("A1" ).Offset(i).Address & "  a changee Prendre en compte?",4)
 if reponse =vbYes then Sheets("feuil2" ).Range("a1" ).Offset(i) = Range("A1" ).Offset(i) 'enregistre les nouveaux changements


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
nur

jujugoldman a écrit a écrit :

je te rassure tu as bien compris  
ca devrait marcher...enfin  je veux dire c'est ce que je veux faire. Je le test et je te tient au courrant
en tout cas merci Beaucoup  pour ton aide  




 
 
En faite pour que cela fonctione il faut remplacer ces 2 lignes dans Worksheet_change:
MsgBox ("la cellule " & Range("A1" ).Offset(i).Address & "  a changee" )
 Sheets("feuil2" ).Range("a1" ).Offset(i) = Range("A1" ).Offset
 
par :reponse=MsgBox ("la cellule " & Range("A1" ).Offset(i).Address & "  a changee Prendre en compte?",4)
 if reponse =vbYes then Sheets("feuil2" ).Range("a1" ).Offset(i) = Range("A1" ).Offset(i) 'enregistre les nouveaux changements

jujugoldman je te rassure tu as bien compris  
ca devrait marcher...enfin  je veux dire c'est ce que je veux faire. Je le test et je te tient au courrant
en tout cas merci Beaucoup  pour ton aide
nur SI J'AI BIEN COMPRIS CE QUE TU VEUX ALORS:
 
 
 
si tu veut seulement regarder s'il y a des changements a la fermeture du classeur tu rajoute la procédure Workbook_BeforeClose et tu met dedans le code de Worksheet_Change
 
la procedure Worksheet_Change permet bien de verifier les changements apres l'ouverture car tout changement dans feuil1 est automatiquement mis a jour dans feuil2 par:
 
Sheets("feuil2" ).Range("a1" ).Offset(i) = Range("A1" ).Offset(i)(i) 'enregistre les nouveaux changements
 
si tu veut u message seulement a la fermeture tu supprime msgbox dans Worksheet_change
jujugoldman en fait apres reflexion c bon mais ca reponds pas a ce que je veux.
j explique les etapes de mon probleme
1: j ouvre la feuille excel
2: je modifie une case en question ,  je sauve
3: je remodifie la meme case  
4: je veux fermer la fueille
5: un message dois venir puisque j ai modifier la case et pas encore sauver
 
 
dans ta methode ca compare  le texte a l ouverture et moi je veux savoir si on a modifier une case Apres l'ouverture
 
il doit exister une commande qui dit :
 
Si la case A1 a changer INDICE = TRUE
Et qd je ve fermer la feuille  on test la valeur de INDICE  si c'est TRUE  on envoie le message  et si c'est FALSE  on dit rien
 
Cette commande existe t-elle?  ou n importe quelle autre commande  quite a magouiller?
 
Encore Merci
jujugoldman HOU LALA  mais c est tout bon ca merci poup le tuyau  je te test  puis je te dis si ca marche  
 
merci tout plein
nur Une solution est de copîer a l'ouverture du classeur ta zone a surveiller
dans une autre feuille exemple:
 
 
 
DANS CODE FEUIL1:
 
 
Private Sub Worksheet_Change(ByVal Target As Range)
modifie = False
 
For i = 0 To 5           ' pour tester la zone A1:A6 de feuil1
 If Range("A1" ).Offset(i) <> Sheets("feuil2" ).Range("a1" ).Offset(i) Then
  modifie = True
  MsgBox ("la cellule " & Range("A1" ).Offset(i).Address & "  a changee" )
  Sheets("feuil2" ).Range("a1" ).Offset(i) = Range("A1" ).Offset(i) 'enregistre les nouveaux changements
End If
 
Next
 
End Sub
 
 
 
 
DANS CODE THISWORKBOOK:
 
 
Private Sub Workbook_Open()
' a l'ouverture du classeur
Sheets("feuil1" ).Range("a1:a6" ).Copy
Sheets("feuil2" ).Range("a1" ).PasteSpecial
 
 
End Sub
jujugoldman cool  pas  mal meme tres bien  je te dit merci. Mais si veux appliquer cette méthode uniquement a quelque case de la feuille excel  et pas a toute la feuille tu fais comment?
encore merci ca avance.
nur Tu peut peut etre essayer la procedure "sub Worsheet_change(byval Target as change)"
appliquée a ta feuille de calcul  
pour ce faire tu dois aller dans l'explorateur de projet puis trouver ta feuille puis dans le code selectioner "Worksheet" et "change" avec les ascenseurs
 
au final chaque fois que tu change quelque chose dans la feuille la procédure est déclenchée
jujugoldman en fait  je bosse pour une boite et je dois faire un devis pour des client et tt ca
 
si par exemple on change le nom d un client pendant le devis(faute d orthographe) il fo que j'alerte la personne pour qu elle resauve le tout  voila pour te mettre dans le bain
 
je pense que de comparez avec le temps semple etre une bonne idee,  les donnees du client SONT sauvegarder ds un fichier excel  mais pas par exemple le nom qui a ete modifier.
 
pourrait tu te dire comment faire avec l'heure?
 
Merci mille fois
remittent Si ta donnée initiale n'est pas stockée en dur je ne voit qu'un seul moyen c'est d'intercepter l'événement keypress; qd l'utilisateur prend le focus sur une case et presse une touche tu interceptes le tout etpeux donc controler s'il change le contenu ou pas.
 
Si ta donnée est stockée en dur y'a pas de pb il suffit de comparer en temps et en heure
jujugoldman en fait je vais prendre un cas tt simple
on met un "1" ds la case A1
 
puis je replace le "1"  par un "2"  
 
puis j'amerais lancer une fonction (qui lance un MsgBox par exemple)  mais le message ce lance UNIQUEMEMT  si il voit que ds la case "A1" il y a un "2".  Si il y a encore un "1"  pas de changement donc  le message ne s affiche pas.
 
j espere que j ai ete assez clair?  meci pour les elements de reponse
remittent Le plus simple (ne sachant pas comment est construit ton tableau ni comment sont stockée les données) c'est d'intercepter soit l'événement keypress soit le changement de focus. Là encore ça dépand de ce que tu veux faire.
Mais il y a peut être d'autre solutions
jujugoldman quelle est la commande qui permet de voir si le contenu d'une case excel a changer ?

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)