Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

copier coller uniquement les valeurs en vba

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

doudou080

XLDnaute Nouveau
Bonjour a tous

malgré avoir lu plein de chose ,Je n'arrive pas modifier une macro existante.
Cette macro tourne très bien mais elle change le format des cellules de destinations:
F8:G8", "F5", "G5", "C36", "G2", "D21:E21", "E8

elle garde le format source police : Times New Roman taille : 10
et moi je voudrais garder le format de destination police : Arial taille 24.

je ne sais pas comment insérer une ligne pour faire ce changement.

Sub Imprimer()

Dim fs, fb
Set fs = ActiveSheet
Set fb = Sheets("gestion des supports")
If Intersect(ActiveCell, Range("E10:E" & Range("E" & 65536).End(xlUp).Row)) Is Nothing Then
MsgBox "selection incorrecte." & Chr(13) & "Vous devez sélectionner un numéro de commande.", 16
End
End If
ln = ActiveCell.Row
For i = 1 To 7
t1 = Choose(i, "A", "C", "D", "E", "F", "G", "H")
t2 = Choose(i, "F8:G8", "F5", "G5", "C36", "G2", "D21:E21", "E8")
fs.Range(t1 & ln).Copy fb.Range(t2)
Next i
fb.Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
fs.Select
For i = 1 To 7
t2 = Choose(i, "F8:G8", "F5", "G5", "C36", "G2", "D21:E21", "E8")
fb.Range(t2).ClearContents

Next i


End Sub


Cordialement votre
 
Bonjour @doudou080,

Sans fichier joint 🙁, il est difficile de savoir si ce qui suit solutionne votre problème => :
Essayez de remplacer:
fs.Range(t1 & ln).Copy fb.Range(t2)
par:
b.Range(t2).value = fs.Range(t1 & ln).value
qui devrait laisser inchangé le format des cellules de destination .
 
Bonjour
merci pour votre réponse.

j'ai une boite de dialogue : erreur d’exécution 424 , objet requis

Sub Imprimer()

Dim fs, fb
Set fs = ActiveSheet
Set fb = Sheets("gestion des supports")
If Intersect(ActiveCell, Range("E10:E" & Range("E" & 65536).End(xlUp).Row)) Is Nothing Then
MsgBox "selection incorrecte." & Chr(13) & "Vous devez sélectionner un numéro de commande.", 16
End
End If
ln = ActiveCell.Row
For i = 1 To 7
t1 = Choose(i, "A", "C", "D", "E", "F", "G", "H")
t2 = Choose(i, "F8:G8", "F5", "G5", "C36", "G2", "D21:E21", "E8")
b.Range(t2).Value = fs.Range(t1 & ln).Value
Next i
fb.Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
fs.Select
For i = 1 To 7
t2 = Choose(i, "F8:G8", "F5", "G5", "C36", "G2", "D21:E21", "E8")
fb.Range(t2).ClearContents

Next i


End Sub
 
Ca y est ,ca marche
J'ai copié collé bêtement .
b.Range(t2).Value = fs.Range(t1 & ln).Value
au liue de:
fb.Range(t2).Value = fs.Range(t1 & ln).Value

par contre
pouvez vous m'expliqué cette ligne de commande.
ca marche mais je ne comprend pas.

encore merci pour votre aide.
 
Re,

Ca y est ,ca marche
Mille excuses 😳. Le "f" a été omis dans ma première réponse.

pouvez vous m'expliqué cette ligne de commande.
ca marche mais je ne comprend pas
  • On considère l'ensemble des valeurs des cellules de la plage fb.Range(t2).Value
  • On les remplace par la valeur de la cellule fs.Range(t1 & ln)
Ceci fonctionne uniquement parce que fs.Range(t1 & ln) est une plage d'une seule cellule.

On pourrait aussi écrire:
VB:
Temp=fs.Range(t1 & ln).Value
b.Range(t2).Value=Temp
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…