Copier la valeur sans la couleur de remplissage

Fermé
DEVPLUS - 30 avril 2018 à 20:10
 DEVPLUS - 9 mai 2018 à 16:27
Bonjour,
pouvez vous m'indiquer comment copier les valeurs de cellules d'une feuille dans d'autres cellules d'une autre feuille
sans copier la couleur de remplissage
Sub Transfert_Achat()
'
' Transfert_Achat Macro
'
Dim DerniereLigne As Integer
Dim i As Integer
Dim Y As Integer
Dim der As Integer
Dim h As Integer
Dim x As Integer
Dim Z As Integer
Dim W As Integer
DerniereLigne = Range("B400").End(xlUp).Row + 1
i = Range("F400").End(xlUp).Row + 1
Y = Range("K400").End(xlUp).Row + 1
Z = Range("C400").End(xlUp).Row + 1


Range("B42:B" & DerniereLigne).Copy Sheets("FA").Range("B14:B" & DerniereLigne).End(xlUp).Offset(1, 0)
Range("C42:C" & Z).Copy Sheets("FA").Range("C14:C" & Z).End(xlUp).Offset(1, 0)
Range("F42:F" & i).Copy Sheets("FA").Range("D14:D" & i).End(xlUp).Offset(1, 0)
Range("K42:K" & Y).Copy Sheets("FA").Range("E14:E" & Y).End(xlUp).Offset(1, 0)

Sheets("FA").Select



End Sub



A voir également:

3 réponses

jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
30 avril 2018 à 20:18
Bonjour,

Au lieu de copier/coller les cellules comme tu le ferais avec un CTRL+C / CTRL+V .. je t'invite à ne prendre que les valeurs "proprement" via le code VBA.
Pour lire une valeur d'une cellule :
mavaleur = Sheets(1).Range("A1").value 
' ou 
mavaleur = Sheets(1).cells(1,1).value

De même pour écrire une valeur :
 Sheets(1).Range("A1").value = mavaleur
' ou 
 Sheets(1).cells(1,1).value = mavaleur

Ce qui oblige à le faire cellule par cellule...

Si, comme tu le souhaites, tu veux copier plusieurs cellules / lignes en même temps, dans ce cas
Il suffit d'utiliser le
.PasteSpecial xlPasteValues

par exemple :
    Sheets("Sheet1").Columns("A1:A20").Copy
    Sheets("Sheet2").Columns("B1").PasteSpecial xlPasteValues


NB: Pour poster ton code à l'avenir, merci de le faire en utilisant la coloration syntaxique :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
2 mai 2018 à 09:08
bonjour


Sheets(2).Range("B1:B20") = Sheets(1).Range("A1:A20").Value
0
DEVPLUS > michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023
2 mai 2018 à 21:27
bonjour,
ça ne marche pas pour deux raison :
1- le collage sur la 2éme feuille doit être positionner du n° de ligne 14 à 400 suivant le nombre de lignes de la 1ere feuille qui change à chaque fois.
CAD: ligne N° 42 1ere feuille avec ligne N° 14 2éme feuille ainsi de suite.
2- si j'efface ou je quitte ou je tape un nouveau achat la 1ere feuille est annuler après avoir été sauvegarder, par contre la 2éme feuille ne doit etre sauvegarder à part.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
3 mai 2018 à 06:21
bonjour,

Ce que Jordane et moi t'avons communiqué est le PRINCIPE

A toi de faire le petit effort d'adaptation à ton contexte
0
DEVPLUS > michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023
3 mai 2018 à 20:23
Merci Michel, sans oublier Jordan, en suivant le principe je suis arrivé à résoudre le problème avec le code suivant, mais seulement le code est trop long, j'ai comme l'impression que nous pouvons le réduire

Sub Transfert_Achat()

' Transfert_Achat Macro
Range("B42:B400").Select
Selection.Copy
Sheets("FA").Select
Range("B14:B372").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False

Sheets("Dossier Achat").Select
Range("C42:C400").Select
Selection.Copy
Sheets("FA").Select
Range("C14:C372").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False

Sheets("Dossier Achat").Select
Range("F42:F400").Select
Selection.Copy
Sheets("FA").Select

Range("D14:D372").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False

Sheets("Dossier Achat").Select

Range("K42:K400").Select
Selection.Copy
Sheets("FA").Select

Sheets("FA").<code basic>Range
("E14:E372").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False

Sheets("FA").Select

End Sub</code>
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310 > DEVPLUS
4 mai 2018 à 09:20
Bonjour,

effectivement, il y a de quoi optimiser! d'alleurs, je t'avais indiqué une méthode car en VBA on évite au maximum les "select" et copy-paste
d'autre part, on commence toujours par figer l'écran pour le confort des yeux et la rapidité.

je vais te proposer un code puisque le tien fonctionne mais préférerais avoir le classeur
pour cela
Mettre le classeur sans données confidentielles en pièce jointe sur 
https://mon-partage.fr/
Puis faire un clic droit copier le raccourci et coller dans votre message


PS Important; SUR QUELLE FEUILLE démarre ta macro? Transfert_Achat ?
0
merci jordane45,
je suis faible en vba , mais je vous prie de bien relire le code que j'ai envoyé, il ne s'agit pas de copier /coller
la plage des cellule à transférer varie entre 42 et 400 pour les colonnes(B,F,K,C)
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
2 mai 2018 à 09:15
bonjour,

comme tu transportes des valeurs, on peut prendre comme dernière ligne la ligne la + grande du bloc

si tu pouvais mettre ton classeur , cela faciliterait le boulot
pour cela
Mettre le classeur sans données confidentielles en pièce jointe sur
https://mon-partage.fr/
Puis faire un clic droit copier le raccourci et coller dans votre message

Dans l’attente
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
4 mai 2018 à 10:01
Re,

petite démo à compléter
https://mon-partage.fr/f/iDEUnRQj/

0
merci michel_m c'est beaucoup mieux.
0