Copier/Coller Impossible en manuel

herve62

XLDnaute Barbatruc
Supporter XLD
Bonsoir
Je rencontre un Pb certainement tout bête mais comme je tourne en rond , je préfère faire appel à vos connaissances
J'ai déjà utilisé cette méthode de COPY/PASTE d'une feuille à l'autre sans Pb
Mais là j'utilise 2 Sub "Worksheets_activate" .... et ca boucle en + sans résultat
Si je retire 1 Sub ( ex en feuille 1) et donc je ne fais qu'une seule Copie .... ca boucle aussi un moment (5sec env) et il y a un résultat
Dans mon appli , je dois copier une plage de feuille 1 vers 2 : les 2 feuilles ont une macro "activate" et là j'ai erreur 1004 !!!
Je joins le petit essai avec lequel je cherche ....
Ou est ma Connerie ???
Merci
 

Pièces jointes

  • cop_past.xls
    24.5 KB · Affichages: 64
  • cop_past.xls
    24.5 KB · Affichages: 65
  • cop_past.xls
    24.5 KB · Affichages: 67
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : Copy-Paste avec Sub activate (VBA)

Bonsoir Hervé, bonsoir le forum,

De manière générale il faut éviter les Select qui ralentissent considérablement le code. D'autant plus dans l'événement Activate d'un onglet dans lequel tu actives un autre onglet qui lui-même contient un autre événement Activate. C'est la boucle assurée...
On peut simplifier ton code et supprimer les Select :
• dans le composant Feuil1(Janvier) :
Code:
Private Sub Worksheet_Activate()
Sheets(2).Range("C5").Copy Sheets(1).Range("D5")
End Sub
• dans le composant Feuil2(Févirer) :
Code:
Private Sub Worksheet_Activate()
Sheets(1).Range("A5").Copy Sheets(2).Range("B5")
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : Copy-Paste avec Sub activate (VBA)

Bonsoir à tous

Tout pareil que Robert ;) ( à propos des Select&Activate et tutti frutti)
Si tu veux que les valeurs, tu peux aussi faire
Code:
Private Sub Worksheet_Activate()
Sheets(1).Range("D5") = Sheets(2).Range("C5")
End Sub
Code:
Private Sub Worksheet_Activate()
Sheets(2).Range("B5") = Sheets(1).Range("A5")
End Sub
Ou plus court
Feuille Janvier
Code:
Private Sub Worksheet_Activate()
Me.[D5] = Sheets(2).[C5]
End Sub
Feuille Février
Code:
Private Sub Worksheet_Activate()
Me.[B5] = Sheets(1).[A5]
End Sub
 
Dernière édition:

herve62

XLDnaute Barbatruc
Supporter XLD
Re : Copy-Paste avec Sub activate (VBA)

Bonjour
Merci Robert de ta remarque ! j'ai pris note
Merci aussi STAPLE , mais le "=" ne marche pas , il faut ajouter .Value des 2 cotés
Note : Maintenant C'est une plage et non plus une seule cellule

Autre soucis que j'ai remarqué dans mon appli :
ON ne PEUT plus faire un Copier/Coller MANUEL d'une feuille à l'autre

Essayez dans mon petit exemple de copier la plage : Recop de 1 en feuille 2 pour la mettre en feuille 1 ( n'importe ou)
et vice Versa !!!! Meme encore Prenez n'importe quelle plage d'une feuille a Copier dans l'autre !!
Que se passe t-il encore ??
 

Pièces jointes

  • cop_past.xls
    25.5 KB · Affichages: 62
  • cop_past.xls
    25.5 KB · Affichages: 72
  • cop_past.xls
    25.5 KB · Affichages: 68

Robert

XLDnaute Barbatruc
Repose en paix
Re : Copy-Paste avec Sub activate (VBA)

Bonsoir le fil, bonsoir le forum,

Hervé, c'est normal ce qui t'arrive. Quand tu copies une plage d'un onglet, tu places le contenu dans le presse-papier, ensuite tu actives l'autre onglet... Là, la macro s'exécute, le code fait un copier/coller et du coup, vide le presse-papier. Donc au moment de coller le presse-paier est vide... Pour t'en convaicre, copie une plage de l'onglet Janvier, va à l'onglet Feuil3 et colle... Là ça marche !
La solution : le code de Staple qui ne fait pas de copier/coller mais récupère les valeurs...
 

herve62

XLDnaute Barbatruc
Supporter XLD
Re : Copy-Paste avec Sub activate (VBA)

Bonsoir
Merci Robert pour ta réponse , C oK pour l'exemple
Mais dans mon appli Ca ne Marche pas ??? si je veux COLLER une ligne de Titres dans une autre Feuille Faut que je passe par le "Presse Papiers", mais PIRE : C'est aléatoire !!!!! Parfois ca marque "Ajouté et ensuite "NoN Ajouté"

Dans la macro ( la meme a chaque feuille) , je n'ai PLUS AUCUNE instruction COpy/Paste !!! ( supprimé et remplacé par Value=)
Par contre c'est bien la SUb_Activate qui perturbe , car si je desactive les macros : c'est bon

Pour voir ce Pb : Il est dans ma réponse à FILLEDU SOLEIL que je viens d'envoyer ( Gestion Absences)

Remarque : J'ai noté des truc bizarres en debogage pas à pas , des variables avec des valeurs incohérentes et autre .... depuis que j'ai installé le module OFFICE pour lire les versions 2007 ?

Si vous pouvez m'eclairer car je tourne un peu .... Bourrique
 

herve62

XLDnaute Barbatruc
Supporter XLD
Re : Copy-Paste avec Sub activate (VBA) + Copier/coller impossible

Bonjour
Je rectifie un peu le Pb , car le Pb .COPY en VBA est résolu
Mais dans l'appli subsiste que le copier/coller en Manuel d'une feuille à l'autre reste impossible
J'ai fait X tests sur des petits bouts de Pg C ok
Donc pour plus de facilité à comprendre je joins le fichier à Pb :
Select une plage d'une feuille ( Janv à Mars) et la copier dans une autre ( sauf annexes .... la ca marche) .... le "coller" est grisé
Il doit y avoir qq chose qui m'échappe ? peut-être tout bête !!
 

Pièces jointes

  • Gestion_Absences.xls
    90.5 KB · Affichages: 54
  • Gestion_Absences.xls
    90.5 KB · Affichages: 57
  • Gestion_Absences.xls
    90.5 KB · Affichages: 69

herve62

XLDnaute Barbatruc
Supporter XLD
Re : Copy-Paste avec Sub activate (VBA) + Copier/coller impossible

Bonjour
Je suis curieux , et j'aime savoir le pourquoi
Ayant remarqué que les "Barbatrucs" étaient en activité ce jour , je me permet de relancer ce fil car je n'ai eu aucun retour
D'ou provient ce Copier/Coller manuel impossible dans le fichier ci-dessus ??
Il doit bien y avoir une explication ??
Avec mes excuses, Merci
 

JNP

XLDnaute Barbatruc
Re : Copier/Coller Impossible en manuel

Bonjour Hervé62 :),
Je n'ai aucun problème de copier/coller entre les feuilles sur ton fichier (peut-être dû à 2010) :p...
Mais on peut considérer logiquement que c'est tes événementielles qui bloquent le copier/coller, donc je te propose un premier test, au début de chaque événementielle, mets
Code:
If Application.CutCopyMode = 1 Then Exit Sub
cela devrait empêcher les événementielles de se déclencher quand une zone est sélectionnée et en pointillé car prête pour la copie.
Si du coup, ça fonctionne, on verra la suite :rolleyes:...
Bonne suite :cool:
PS : bonne chance dans ta recherche d'emploi, pas facile en ce moment :eek:...
 

herve62

XLDnaute Barbatruc
Supporter XLD
Re : Copier/Coller Impossible en manuel

Bonsoir
MERCI JNP !!!!!!!! ca réconforte , d'abord d'avoir répondu à mon appel et Puis ... CA MARCHE
c'est une Appli que j'ai fait de A à Z ( macro) pour un membre du Forum ... donc en + ce n'était pas vraiment pour moi
Mais j'aime pas les choses à demi faites !!!
Maintenant la raison qu'en 2003 Y a Pb et non en 2010 ... ? faut pas trop chercher ; mais c'est la 1ere fois que je rencontre cela , j'ai déjà utilisé ActiveSheet Plusieurs fois

PS : La CHANCE ?? ca fait 4ans que je ne connais plus ce mot ; merci mais désolé... meme Sénior bien diplomé+ expérience; La région Nord-PdC est bien triste
Bon WE !
 

JNP

XLDnaute Barbatruc
Re : Copier/Coller Impossible en manuel

Re :),
C'est bien que ça marche, mais maintenant, il faudrait (enfin je pense :rolleyes:) que ce qui devait se passer lors de l'Activate se passe quand même après le coller, donc il faudrait utiliser un événement Change (pas Selection_Change car tu vas te retrouver dans la même problèmatique que précédemment :eek:) et tester aussi si tu as le mode Copier activé, et dans ce cas-là, faire la même chose que dans ton événement Activate :p...
Bon courage :cool:
PS : il parait que la chance arrive à ceux qui y croient, alors, essaye, de toute façon, tu ne risques rien :rolleyes:...
 

herve62

XLDnaute Barbatruc
Supporter XLD
Re : Copier/Coller Impossible en manuel

Bonsoir
J'ai refait qq test , mais j'ai pas trouve la méthode Sub appropriée ( pas trop le choix d'ailleurs) donc à part SUb Activate je ne vois pas
Je n'ai pas retrouve d'exemple avec ( PC changé ... d'ou perte)
JNP : je n'ai pas tout saisi dans tes explications... comme "utiliser événement Change" et autre
A suivre .. J'espère pour la Raison, le pourquoi .......Mais aussi si ca peut servir dans l'avenir à d'autres
 

Discussions similaires