Copier coller sans passer par presse papier / format de données équivalent à une
inteloide2
Messages postés16Date d'inscriptionjeudi 30 décembre 2010StatutMembreDernière intervention 1 septembre 2012
-
12 août 2012 à 12:32
DamienGB
Messages postés30Date d'inscriptionmercredi 23 mai 2012StatutMembreDernière intervention13 août 2012
-
13 août 2012 à 12:54
Bonjour,
Je suis à la recherche d'un bout de code qui permettrait de mettre en mémoire une cellule et de la recopier autre part sans passer par le presse papier.
Existe-il un type de données qui reprend le format, la valeur (etc) d'une cellule ?
Comment affecter cette données à une cellule ?
J'ai bien essayé :
Set r = Feuil2.Range("A1")
Feuil1.Range("A5") = r
(r étant une variable Variant)
mais ça ne copie que la valeur...
JE SAIS qu'en passant par le presse papier c'est possible mais, dans mon application, j'ai besoin de copier des données venant de plusieurs feuilles pour les mettre dans une même feuille, et le copier/coller, c'est un peut long.
qq aurait-il une idée ?
Merci d'avance
A voir également:
Copier coller sans passer par presse papier / format de données équivalent à une
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 12 août 2012 à 13:41
Bonjour,
utilisation de la méthode copy, avec argument destination ! A voir dans ton aide VBA (Range Copy). Vient de surcroît accompagnée d'un exemple trrès clair.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
inteloide2
Messages postés16Date d'inscriptionjeudi 30 décembre 2010StatutMembreDernière intervention 1 septembre 2012 12 août 2012 à 13:57
Avant de poster ce message je me suis dis, je ne vais pas mettre pour quelle utilisation j'ai besoin de mettre une cellule dans une variable car je suis sûr qu'il y a en un qui va me sortir "
utilisation de la méthode copy
Pourtant il me semble bien avoir poser comme question :
Existe-il un type de données qui reprend le format, la valeur (etc) d'une cellule ?
Comment affecter cette données à une cellule ?
ucfoutu : si tu l'aide, avec de surcroît son exemple très clair, tu verras qu'il est marqué qu'on ne peut pas copier des cellules de feuilles différentes en un seul coup : il faut copier feuille par feuille : ce que je veux éviter !
Je suis en train d'optimiser un moteur de recherche "à la google", dans excel pour une base de donnée, où la vitesse d'exécution est primordiale. La méthode copy est assez longue, comparé à une affectation de valeur : je cherche à optimiser.
PS : les application.screenupdating, calculation=xlManuel je connais
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 12 août 2012 à 15:15
Ah oui ?
Bien ! optimise donc, optimise ...
Tu es incompréhensible.
Pour tàon info :
la méthode que je t'ai indiquée :
reprend le format, la valeur (etc) d'une cellule
très exactement !
Montre donc ton code !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
DamienGB
Messages postés30Date d'inscriptionmercredi 23 mai 2012StatutMembreDernière intervention13 août 2012 13 août 2012 à 12:54
Bonjour tu dois pouvoir stocker le format dans une chaine String
Par exemple
For rw = nbrw To 9 Step -1
If (Range(Cells(rw, 2).Address(RowAbsolute:=False, ColumnAbsolute:=False)).Style <> "Satisfaisant") And (Range(Cells(rw, 2).Address(RowAbsolute:=False, ColumnAbsolute:=False)).Style <> "Neutre") Then
Range(Cells(rw, 2).Address(RowAbsolute:=False, ColumnAbsolute:=False)).EntireRow.Delete
End If
Next rw
Ma coloration conditionnelle doit être stocker comme String,on compare 2 chaines caractère
Du coup stocker la valeur dans un objet,le format dans un autre
Dim rformat As String
Set r = Feuil1.Range("A1")
rformat = Feuil1.Range("A1").NumberFormat
Feuil1.Range("A5") = r
Feuil1.Range("A5").NumberFormat = rformat
Et effectivement les 2 cellules sont bien au même format