Excel macro VBA problème exécution
Phil
-
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'ai fait une petite macro pour faire un copier/coller-special-valeurs entre 2 feuilles d'un même classeur.
Quand j'exécute la macro en pas à pas, aucun problème.
Si j'exécute la macro "normalement", je n'ai pas les valeurs dans les cellules cible.
voici mon code
merci de votre aide
phil
j'ai fait une petite macro pour faire un copier/coller-special-valeurs entre 2 feuilles d'un même classeur.
Quand j'exécute la macro en pas à pas, aucun problème.
Si j'exécute la macro "normalement", je n'ai pas les valeurs dans les cellules cible.
voici mon code
Sheets("Feuill3").Select Cells.Select Selection.Copy Sheets("Resultat").Select Cells.Select Selection.PasteSpecial _ Paste:=xlPasteValues, Operation:=xlPasteSpecialOperationNone, _ SkipBlanks:=False, Transpose:=False
merci de votre aide
phil
A voir également:
- Excel macro VBA problème exécution
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
3 réponses
Bonsoir,
Tu es sûr des deux "ll" dans "Feuill3"?
@ te relire
Pour info, ce code pourrait t'aider :
Tu es sûr des deux "ll" dans "Feuill3"?
@ te relire
Pour info, ce code pourrait t'aider :
Sub ee() Sheets("Feuil1").Cells.Copy Sheets("Resultat").Range("A1").PasteSpecial _ Paste:=xlPasteValues End Sub
Bonjour,
Tout d'abord, merci de la réponse rapide.
Il semble que mon problème ne vient pas du code de ma macro mais du délai de calcul ou d'affichage.
J'ai une requête sur une BDD SQL serveur qui me renvoie des résultats dans une feuille "Feuil1"+ une feuille "Feuil3" qui fait quelques calculs sur ces données.
Ensuite je cherche à copier coller les valeurs de "Feuil3" dans "Resultat" pour pouvoir ensuite supprimer "Feuil1" & "Feuil3" pour ne garder que l'essentiel.
En mode pas à pas, l'exécution de la requête + les calculs sont OK, mon copier coller fonctionne normalement.
Si j'exécute ma macro par F5, dans "Resultat", je ne récupère que des cellules à zéro.
J'ai essayé d'ajouter un DoEvent pour avoir une temporisation, mais ça ne dois pas être la bonne instruction.
Si quelqu'un peut m'aider à ne plus tourner en rond...
Merci d'avance.
phil
Tout d'abord, merci de la réponse rapide.
Il semble que mon problème ne vient pas du code de ma macro mais du délai de calcul ou d'affichage.
J'ai une requête sur une BDD SQL serveur qui me renvoie des résultats dans une feuille "Feuil1"+ une feuille "Feuil3" qui fait quelques calculs sur ces données.
Ensuite je cherche à copier coller les valeurs de "Feuil3" dans "Resultat" pour pouvoir ensuite supprimer "Feuil1" & "Feuil3" pour ne garder que l'essentiel.
En mode pas à pas, l'exécution de la requête + les calculs sont OK, mon copier coller fonctionne normalement.
Si j'exécute ma macro par F5, dans "Resultat", je ne récupère que des cellules à zéro.
J'ai essayé d'ajouter un DoEvent pour avoir une temporisation, mais ça ne dois pas être la bonne instruction.
Si quelqu'un peut m'aider à ne plus tourner en rond...
Merci d'avance.
phil
Bonjour,
La réponse de cousinhub29 est correcte, essaie au moins...
En mode pas à pas, l'exécution de la requête + les calculs sont OK
Avec le code que tu nous a fourni ça m'étonnerait...
Tu fais Sheets("Resultat").Select au lieu de Sheets("Resultat").Activate, ton pastespecial doit aller dans la feuille active, tu as l'impression que ça marche parce tu as Sheets("Resultat") d'activé lorsque tu contrôles je pense.
Remplace par le code fourni par cousinhub29.
Ceci dit les données ne sont peut-être pas encore là (en plus...).
Pour temporiser tu as .Wait (doevents permet aux autres évènement de s'executer sans tout bloquer)
Tu pourrais faire une boucle while qui contrôle le contenu d'une cellule prouvant que toutes les données sont arrivées, avec à l'intérieur une tempo du style Application.Wait(Now + TimeValue("00:00:03"))
eric
La réponse de cousinhub29 est correcte, essaie au moins...
En mode pas à pas, l'exécution de la requête + les calculs sont OK
Avec le code que tu nous a fourni ça m'étonnerait...
Tu fais Sheets("Resultat").Select au lieu de Sheets("Resultat").Activate, ton pastespecial doit aller dans la feuille active, tu as l'impression que ça marche parce tu as Sheets("Resultat") d'activé lorsque tu contrôles je pense.
Remplace par le code fourni par cousinhub29.
Ceci dit les données ne sont peut-être pas encore là (en plus...).
Pour temporiser tu as .Wait (doevents permet aux autres évènement de s'executer sans tout bloquer)
Tu pourrais faire une boucle while qui contrôle le contenu d'une cellule prouvant que toutes les données sont arrivées, avec à l'intérieur une tempo du style Application.Wait(Now + TimeValue("00:00:03"))
eric