ricomiracle
Messages postés195Date d'inscriptionvendredi 19 novembre 2004StatutMembreDernière intervention30 novembre 2009
-
3 août 2005 à 11:22
sacha1435
Messages postés94Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention12 octobre 2005
-
5 août 2005 à 08:51
Pour les besoins d'un programme, je fais du copier coller entre 2 feuilles excel.
Ces deux feuilles contiennent un tableau et je parcours les lignes de la feuille 1 pour les copier ds la feuille2
Le problème c'est que à chaque "coller" l'affichage de excel est
rafraichit et l'utilisateur vois une bande bleu qui descend ligne par
ligne...
Ma question c'est comment faire pour gelé l'affichage et le remettre a la fin de mes traitements.
sacha1435
Messages postés94Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention12 octobre 20052 3 août 2005 à 15:38
Rassure toi tu n'est pas le seul.
Seulement il y a un outil dans Excel qui est excellent c'est l'enregistreur de macro apprend a l'utilisé et tu vas progresser
de manière fulgurante, et cela te permettra de te pencher plus sur le code a faire que sur les méthodes a utilisé vu que l'enregistreur te les donneras.
Dans l'aide Excel tu as tout concernant l'enregistreur.
ricomiracle
Messages postés195Date d'inscriptionvendredi 19 novembre 2004StatutMembreDernière intervention30 novembre 2009 4 août 2005 à 10:50
Sacha l'utilisation de l'enregistreur est treès judicieuse mais
je connais pas la manip a faire ds excel pour figer l'affichage (ce ne
serait pas normal qu'un utilisateur puisse faire ca...)
Puisque vous avez l'air bien calé ds Excel VBA j'en profite...
Justement par l'enregistreur de macro ds excel 2000 je fais la manip
suivante:
debut enregistrement....
sélection d'un plage de cellule->copie
sélection d'UNE seul cellule à un autre endroit ->collage special
la ya des choix pour le mode de collage (celui qui m'intéresse c collage de la validation uniquement) dc je choisit validation
Le collage à l'air de bien se passer, j'arrete la macro, je v voir le
code... qui plante lorsque j'essaie de l'executer (tu comprends ma
surprise) a cause de la ligne :
selection.pastespecial xlDataValidation,...
Le problème est que la methode pastespecial accepte xlPasteFormula,
xlPasteAll... et d'autres mais pas XlDataValidation. Variable que je
n'est trouvé nulle part ds l'aide de VBA excel ni ds l'explorateur
d'ibjet.
Si tu connais un moyen de copier une plage de cellule et ne coller que la validation je suis preneur!
sacha1435
Messages postés94Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention12 octobre 20052 4 août 2005 à 11:27
Salut Rico,
Bien calé dans Excel VBA oui mais ...
calé dans l'utilisation spécifique de ma profession de cet appli.
Par contre je n'ai jamais travailler avec la fonction validation du pastspécial, j'ai fait un test chez moi et il colle rien quand je fait pastespécial validation !!!
a quel fin utilises tu cette fonction?
ricomiracle
Messages postés195Date d'inscriptionvendredi 19 novembre 2004StatutMembreDernière intervention30 novembre 2009 4 août 2005 à 14:41
Un peu compliqué je v essayer de faire concis.
La validation (Données -> validation) permet entre autre
d'affecter des listes à des cellules. Excel retourne un message à
l'utilisateur lorsque celui ci rentre une valeur ds la cellule qui
n'appartient pas à la liste. C'est pour la cohérence des données.
Je fais une appli basé sur excel permettant de faire de la saisie de
données. Cette saisie doit respecter des contraintes sur chaque données
(d'où l'utilisation de l'objet Validation : je met des listes
déroulantes ds chaques cellules et seul les champs de ces listes
peuvent etre saisie)
Le problème c'est lorsque l'utilisateur fait un tri sur les colonnes.
Les valeurs des cellules sont bien triées mais pas l'objet validation.
Il est rattaché uniquement à l'adresse de la cellule qui elle ne bouge
pas mendant le tri.
Je dois dc trouver un moyen de récupérer les bons objets validation et les coller aux bons endroits
sacha1435
Messages postés94Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention12 octobre 20052 4 août 2005 à 15:19
Salut Rico,
bon j'ai rempli une cellule "C31" avec data>validation>[Allow]=List; les deux case option sons cochée;[Source]=une plage de 5 cellules avec des nombres.
j'ai fait la manip suivante avec l'enregistreur On,
selection de la cellule "C31"
Copie.
déplacement sur la cellule "G34".
Paste spécial.
J'ai fait cette manip sans aucuns problème avec l'enregistreur, le résultat :
Sub Macro1()
Range("C31").Select
Selection.Copy
Range("G34").Select
Selection.PasteSpecial Paste:=xlPasteValidation, Operation:=xlNone,SkipBlanks:=False, Transpose:=False
End Sub
Après avoir effacé la cellule "G34" j'ai fait tourner la macro et le résltat est OK il me met bien une liste avec les nombre de la plage selectioné.
j'ai même fait le test du copier collé tout simple et la validation suit sans problème.
Maintentant pour les tris ??? si j'ai pas un exemple de feuille cela va être assez difficile.
Mais je comprend pas pourquoi ton excel foir avec cette macro. tu autorises les macros dans le Workbook?
voir Outil>Options[Securité]>bouton Macrosécurité..
ricomiracle
Messages postés195Date d'inscriptionvendredi 19 novembre 2004StatutMembreDernière intervention30 novembre 2009 4 août 2005 à 17:10
La macro fonctionne??? Avec Excel 2000 ??? Je suis très étonné.
L'enregistreur de macro me sort effectivement le meme code mais
impossible de l'executer.!
Chez moi c'est a cause de la variable xlPasteValidation que mopn excel semble ne pas reconnaitre.
Pourrait tu la mettre ds le debugger pour voir la valeur quel a?
sacha1435
Messages postés94Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention12 octobre 20052 5 août 2005 à 08:51
Salut,
dans le débuger la valeur de xlPasteValidation=6 (quand je met le pointeur de la souris sur la variable).
j'ai Excell 2003 SP1.
Peut-être que tu auras plus de renseignement sur le news microsoft.public.fr.excel la ils sont vraiment très calé sur la chose et il cause
le français en plus :-).