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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  mesage traitement en cours + MàJ auto des cellules

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

mesage traitement en cours + MàJ auto des cellules

n°1895066
shmider
Posté le 15-06-2009 à 10:03:47  profilanswer
 

Bonjour,  
 
Je voudrais tirer sur les cellules à mettre à jour avec une macro histoire d'automatiser la mise à jour. Et pendant le traitement je voudrais faire apparaitre un message genre "patientez"...  
 
Je suis entrain de tester cette macro:  
 
Sub tirerauto()
 
Range("A5:U5" ).Select
Selection.AutoFill Destination:=Range("A10:U10" ), Type:=xlFillDefault
Range("A5:U5" ).Select
Application.Goto Reference:="tirerauto"
 
End Sub
 
et ça pour tirer sur une matrice en fait ! et pas une colonne !! mais ça marche pas  
 
j'ai ce message d'erreur: la methode autofill de la classe range a echouée.  
 
note: en meme temps je cherche maintenant un code pour le message de traitement en cours !  
 
Merci pour votre aide.  
@+

mood
Publicité
Posté le 15-06-2009 à 10:03:47  profilanswer
 

n°1895109
Ctplm
Posté le 15-06-2009 à 11:59:40  profilanswer
 


Hi,
 
Je crois pas que tu puisses étendre une ligne sur plusieurs colonnes, étendre des cellules en ligne sur une ligne ok, des cellules en colonne sur une colonne ok aussi, mais pas des cellules en ligne sur une/plusieurs colonnes. En tout cas si tu regardes dans l'aide, tu as ça :

Citation :

Destination Required Range The cells to be filled. The destination must include the source range.


C'est pour ça que tu as un message d'erreur, ta plage de destination ne contient pas ta plage source.
 
Pour le message de traitement, pourquoi pas un userform avec une progressbar ?


---------------
"That kind of information doesn't just grow on trees."
n°1895160
produvba
Posté le 15-06-2009 à 14:08:41  profilanswer
 

Bonjour,
 
Effectivement pour le message le mieux est un Form qui apparait (form("X" ).visible = true) puis qui disparait à la fin (.visible = false)).
Pour le copier / coller, dans le doute le mieux est d'enregistrer la macro en faisant réellement ce que tu veux faire une fois, cela enregistre avec la bonne syntaxe et hop le tour est joué.
 
"Pro du VBA"

n°1895165
Ctplm
Posté le 15-06-2009 à 14:14:27  profilanswer
 


J'ai commenté l'affichage de l'Userform sans titlebarre car il faut du code supplémentaire. Pour la progressbar il faut faire un clic droit sur la boîte à outils dans l'userform et dans "Contrôles supplémentaires", cocher progressbar.
 
 

Code :
  1. Sub UserForm1_Activate()
  2. 'With UserForm1
  3. 'AfficheTitleBarre UserForm1.Caption, False
  4. 'End With
  5. UserForm1.Show
  6. End Sub


 

Code :
  1. Private Sub UserForm_Initialize()
  2. UserForm1.ProgressBar1.Max = 21
  3. Call Module1.TestAutoFill
  4. End Sub


 

Code :
  1. Sub TestAutoFill()
  2. Sheet1.Select
  3. For a = 1 To 21
  4. Cells(5, a).Select
  5. Selection.AutoFill Destination:=Range(Cells(5, a), Cells(10, a)), Type:=xlFillDefault
  6. Next a
  7. Sheet1.Range("A2" ).Select
  8. End Sub


 
http://lh6.ggpht.com/_dBFrpW44io4/SjY4dzBQmGI/AAAAAAAAAF8/9Oi8liVou7s/s800/Ctplm.jpg
 
 
 


---------------
"That kind of information doesn't just grow on trees."
n°1895860
shmider
Posté le 16-06-2009 à 17:44:42  profilanswer
 

Bonjour tout le monde, un super grand merci pour vos posts. je suis désolé pour le retard.  
je revienderai vers vous demain matin pour vous dire ce qu'il en est ;)  
 
je teste .... ciao et à demain.

n°1896060
shmider
Posté le 17-06-2009 à 10:01:38  profilanswer
 

Bonjour Ctplm
Bonjour produvba
 
Merci pour vos messages, en fait je suis entrain de tester vos propositions et je n'arrive pas à tout regrouper en une seul macros (les trois codes de Ctplm).  
 
j'ai essayé de créer un userform pour l'appeler par la suite avec le code a Ctplm. ensuite pendant le traitement de mon fichier (mise à jour auto des lignes "par macros) j'aimerai que le userform1 "par exemple" s'affiche... avec le progress bar comme dans le code. sauf que j'ai des  erreurs (cf lien hypertext).  
 
=> http://www.excel-pratique.com/~fil [...] _test1.xls
 
Note:  je revienderai toute à l heure pour plus d explication merci.  
 
@+  
 

Ctplm a écrit :


J'ai commenté l'affichage de l'Userform sans titlebarre car il faut du code supplémentaire. Pour la progressbar il faut faire un clic droit sur la boîte à outils dans l'userform et dans "Contrôles supplémentaires", cocher progressbar.
 
 

Code :
  1. Sub UserForm1_Activate()
  2. 'With UserForm1
  3. 'AfficheTitleBarre UserForm1.Caption, False
  4. 'End With
  5. UserForm1.Show
  6. End Sub


 

Code :
  1. Private Sub UserForm_Initialize()
  2. UserForm1.ProgressBar1.Max = 21
  3. Call Module1.TestAutoFill
  4. End Sub


 

Code :
  1. Sub TestAutoFill()
  2. Sheet1.Select
  3. For a = 1 To 21
  4. Cells(5, a).Select
  5. Selection.AutoFill Destination:=Range(Cells(5, a), Cells(10, a)), Type:=xlFillDefault
  6. Next a
  7. Sheet1.Range("A2" ).Select
  8. End Sub


 
http://lh6.ggpht.com/_dBFrpW44io4/ [...] /Ctplm.jpg
 
 
 


n°1896422
Ctplm
Posté le 17-06-2009 à 21:41:01  profilanswer
 


Bonsoir,
 
La procédure UserForm_Initialize doit être dans l'Userform (double-clique sur l'userform dans l'éditeur pour voir son code..).
Les deux autres procédures doivent être dans Module1.
 
Dans l'ordre : Il faut lancer Userform_Activate, qui affiche l'Userform. Lors de l'initialisation de l'Userform, UserForm_Initialize se lance tout seul, ce qui appelle la procédure TestAutoFill.


---------------
"That kind of information doesn't just grow on trees."
n°1896676
shmider
Posté le 18-06-2009 à 17:07:49  profilanswer
 

Bonjour à toi ;)  
 
Ok merci je teste ça et je te dirai ce qu'il en est demain.  
 
ciao @+  
 
 

Ctplm a écrit :


Bonsoir,
 
La procédure UserForm_Initialize doit être dans l'Userform (double-clique sur l'userform dans l'éditeur pour voir son code..).
Les deux autres procédures doivent être dans Module1.
 
Dans l'ordre : Il faut lancer Userform_Activate, qui affiche l'Userform. Lors de l'initialisation de l'Userform, UserForm_Initialize se lance tout seul, ce qui appelle la procédure TestAutoFill.



Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  mesage traitement en cours + MàJ auto des cellules

 

Sujets relatifs
Comment auto-actualiser une heure?Aide MAJ liste chainée
Suppression auto des commentaires C/C++Mois en cours et Semaine en cours
Problème traitement bouton radioAuto-increment multiple
auto évaluationPas de traitement d'image avec image_filter();
[résolu] Div en overflow:auto, garder le focus en bas ?Gestions des cellules d'Excel
Plus de sujets relatifs à : mesage traitement en cours + MàJ auto des cellules


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR