Signaler

Copier une ligne sans sa couleur de fond [Résolu]

Posez votre question mod77 1187Messages postés vendredi 10 juillet 2009Date d'inscription 19 juin 2017 Dernière intervention - Dernière réponse le 11 juin 2017 à 23:47 par Henri
Bonjour,

Je souhaite savoir comment coller une ligne sans la couleur de fond et sans les codes des cellules, vers une autre feuille svp.

J'ai mis en boucle ceci:

For i = 6 To 7
'Copie la ligne de "B" à "M"
Sheets("feuil1").Range("B" & i & ":M" & i).Copy
Sheets("feuil2").Range("B" & i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Next




Savoir dire NON est un devoir et une force! N'ayez pas peur! L'union fait la force!

Passez en résolu si ça l'est!
Afficher la suite 
Utile
+1
plus moins
Bonjour,

Peut-être simplement :
....
Sheets("feuil2").Range("B" & i & ":M" & i).Value = _
Sheets("feuil1").Range("B" & i & ":M" & i).Value
....

mod77 1187Messages postés vendredi 10 juillet 2009Date d'inscription 19 juin 2017 Dernière intervention - 9 juin 2017 à 01:42
Merci ! j'essaie demain .
Bonne nuit
Répondre
Donnez votre avis
Utile
+1
plus moins
Inutile d'utiliser une boucle For .. Next, donc pas besoin de variable i !

xlPasteAll copie tout (y compris le format des cellules) ; utilise plutôt
xlPasteValues qui copie seulement les valeurs.


Option Explicit

Sub Essai()
  ' Copie les lignes de la plage "B6:M7"
  Worksheets("Feuil1").Range("B6:M7").Copy
  Worksheets("Feuil2").Range("B6").PasteSpecial xlPasteValues
  Application.CutCopyMode = False
End Sub


La dernière instruction évite le cadre de tirets clignotants
(qui est autour de la plage source des données à copier).
 
Donnez votre avis
Utile
+0
plus moins
Le format comprend aussi les fonctions dans les cellules (type: =si(..) ) ?
Henri- 11 juin 2017 à 22:37
 
@mod77

Dans la page d'arrivée, ce n'est pas un cadre de sélection ; il suffit de sélectionner
une cellule pour que cette plage de destination ne soit plus sélectionnée :


Option Explicit

Sub Essai()
  ' Copie les lignes de la plage "B6:M7"
  Worksheets("Feuil1").Range("B6:M7").Copy
  With Worksheets("Feuil2").
    Range("B6").PasteSpecial xlPasteValues: .[A1].Select
  End With
  Application.CutCopyMode = False
End Sub


Remarque : les autres méthodes qui utilisent une variable i doivent être
dans une boucle For i ... Next i pour marcher, et je trouve plus simple
d'utiliser directement "B6:M7".
 
Répondre
mod77 1187Messages postés vendredi 10 juillet 2009Date d'inscription 19 juin 2017 Dernière intervention - 11 juin 2017 à 23:04
C'est vrai Henri, c'est mieux mais ça ne passe pas si je transpose vers Calc de OpenOffice Mais je garde ton code. Merci à tous
Répondre
Henri- 11 juin 2017 à 23:47
 
@mod77

Désolé, ça n'a pas marché car j'ai fait une faute de frappe ! Le point
n'est pas en fin de ligne 7 mais en début de ligne 8, ce qui donne :


Option Explicit

Sub Essai()
  ' Copie les lignes de la plage "B6:M7"
  Worksheets("Feuil1").Range("B6:M7").Copy
  With Worksheets("Feuil2")
    .Range("B6").PasteSpecial xlPasteValues: .[A1].Select
  End With
  Application.CutCopyMode = False
End Sub


Et ça devrait passer même avec Calc de OpenOffice.
 
Répondre
Patrice33740 5894Messages postés dimanche 13 juin 2010Date d'inscription 20 juin 2017 Dernière intervention - 11 juin 2017 à 21:34
Avec ma formule, il n'y a pas de Copy donc pas de cadre pointillé autour de la zone copiée et pas besoin de Application.CutCopyMode = False
Répondre
mod77 1187Messages postés vendredi 10 juillet 2009Date d'inscription 19 juin 2017 Dernière intervention - 11 juin 2017 à 21:43
Merci Patrice33740 ! j'ai adopté et ça marche impec :-)
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !