comment mémoriser un "COLLER"

M

MICHELLE

Guest
Bonjour,

Avant de lancer une macro, je fais un copier d’une plage issue d’un classeur excel
Je ne peux pas garder l’origine du classeur dans la macro (ça serait trop simple !) car ces données peuvent venir de n’importe où c’est l’utilisateur qui fait son choix

Est il possible de garder en mémoire cette plage en début de programme (avec un coller) pour pouvoir l’utiliser un peu partout dans cette macro ?
J’ai essayé de faire coller, ça marche au début mais après je n’ai plus de données car elles ont été utilisées (je ne peux pas refaire coller)

Si oui que dois je écrire en début ?
et comment se servir de cette 'mémoire' ?

michelle
 

Hellboy

XLDnaute Accro
Bonjour a vous deux et au Forum

Le truc est de mettre dans une variable qui sera active tout le long de l'ouverture du classeur. Cette variable est dite Public et est déclaré dans un Module régulier et au dessus des Première procédures.

Example:


Option Explicit

Public rngPlage            As Range

Public Sub Test()

End Sub


Tout au long du code tu peux récupérer ce qui est contenu dans cette variable.
C'est difficile de savoir comme ça ce qui sera le plus approprié pour toi Peace, si tu ne réussi pas soit tu joint ton fichier en example ou tu donne d'avantage de précision sur ce que tu copie.

a+
 

Bricofire

XLDnaute Impliqué
Bonsoir Michelle, peace, Hellboy ;) , :)

Bon Michelle, je crois que ta question n'est pas assez explicite, quand tu fais un copier, les données vont dans le tampon mémoire de Windows, si tu fermes Excel, tu ouvres Word tu colles, c'est OK, tu rouvres Excel, tu colles , c'est OK (en version 2000 & + tout du moins), dans ta macro tu n'aurais pas par hasard une ligne du genre : Application.CutCopyMode = False ? (ou un paramétrage qui reviendrait au même si ça existe....), ça a pour effet de vider le tampon justement.

Sinon en mettant juste tes lignes de code de copie dans ton post, on verrait plus clair :unsure:

Bon, je suis pressé et je n'ai pas vu encore toutes les photos... :)

Wait & See,

Bfr
 
M

michelle

Guest
j'ai esssayé, re éssayé, et je n'y arrive toujours pas

peux tu m'aider, j'ai réalisé une petite macro 'tout con' qui fait un coller 2 fois sur 2 feuilles différentes et bien entendu ça coince en arrivant sur la seconde.

est il possible de m'aider en incorporant ta variable

merci

michelle [file name=exemple_20050928102230.zip size=9572]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/exemple_20050928102230.zip[/file]
 

Pièces jointes

  • exemple_20050928102230.zip
    9.3 KB · Affichages: 24

Bricofire

XLDnaute Impliqué
Re tout le monde, :)

Michelle, voici ton code...


Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 08/09/2005 par HB
Sheets('Feuil1').Select
Range('A1').Select
ActiveSheet.Paste
Sheets('Feuil1').Select
Application.CutCopyMode = False
Selection.AutoFilter
Sheets('Feuil1').Select
Range('A1').Select
Sheets('Feuil2').Select
Range('A1').Select
ActiveSheet.Paste
Sheets('Feuil2').Select
Application.CutCopyMode = False
Selection.AutoFilter
Sheets('Feuil2').Select
Range('A1').Select
End Sub



As-tu lu mon post, vois-tu les commandes similaires à celle que j'ai mis en gras dans ton code ??? :unsure: :( :S

Bon courage,

Bfr
 

Hervé

XLDnaute Barbatruc
Bonjour tout le monde

ma contibution :

Ce code copie la plage a1:d5 du classeur (classeur2.xls) feuille 1, vers :

la feuille1 et la feuille2 du classeur exemple.xls

cette plage de données n'est pas perdu car déclaré public, et peux donc etre réutilisée plus loin dans les codes :

Dim plage As Range
Sub Bouton16_QuandClic()


Set plage = Workbooks('classeur2.xls').Sheets('feuil1').Range('a1:d5')

With Workbooks('exemple.xls')
    .Sheets('feuil1').Range('a1').Resize(plage.Rows.Count, plage.Columns.Count) = plage.Value
    .Sheets('feuil2').Range('a1').Resize(plage.Rows.Count, plage.Columns.Count) = plage.Value
End With
End Sub

salut
 

Discussions similaires

Réponses
12
Affichages
475
Réponses
8
Affichages
1 K

Statistiques des forums

Discussions
312 321
Messages
2 087 261
Membres
103 498
dernier inscrit
FAHDE