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

Fonction Range().select

Jeanvaljean

XLDnaute Nouveau
Salut le forum,

Nouveau point de blocage : je souhaites copier une plage de cellules non contiguës d'une feuille TOTO dans une autre feuille TITI, et seule la plage A55 est copiée!!!

Windows("TOTO.xlsm").Activate
Range("A55,F5,H5,J5,L5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("TITI").Activate
Range("A6").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Quelqu'un aurait-il une idée????

Merci d'avance

Jeanvaljean
 

Coriolan

XLDnaute Occasionnel
Re : Fonction Range().select

Bonjour,

Oui, j'ai une idée :

Windows("TOTO.xlsm").Activate
Range("A5").Select
Range(Selection, Selection.End(xlDown)).Select
lastrow=rows(selection)
Range("A5" & lastrow & ",F5:F" & lastrow & "H5:H" & lastrow & "J5:J" & lastrow & "L5:L" & lastrow).select
Selection.Copy
Windows("TITI").Activate
Range("A6").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
 

Coriolan

XLDnaute Occasionnel
Re : Fonction Range().select

Re:

Mea culpa, on se retrouve avec une plage sélectionnée, donc difficile d'avoir la référence d'une ligne.

Voilà le bon code :

Windows("TOTO.xlsm").Activate
Range("A5").Select
Range(Selection.End(xlDown)).Select
lastrow=rows(selection)
Range("A5" & lastrow & ",F5:F" & lastrow & "H5:H" & lastrow & "J5:J" & lastrow & "L5:L" & lastrow).select
Selection.Copy
Windows("TITI").Activate
Range("A6").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks:=False, Transpose
 

mécano41

XLDnaute Accro
Re : Fonction Range().select

Bonjour,

Peut-être ainsi :

Code:
Option Explicit

Sub essai()
Dim Cellule As Range
Dim LigneCell As Long
Dim ColonneCell As Integer
Worksheets("TOTO").Activate
For Each Cellule In Range("A15:D15, F5, H5, J5, L5")
    LigneCell = Cellule.Row
    ColonneCell = Cellule.Column
    Cellule.Copy
    Worksheets("TITI").Activate
    Cells(LigneCell, ColonneCell).Offset(-4, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Next Cellule
End Sub

L'exemple est fait sur une plage + des cellules séparées. Attention à l'offset qui ne doit pas faire remonter la copie avant la ligne 1 (ou avant la colonne A le cas échéant !)

Cordialement
 

Jeanvaljean

XLDnaute Nouveau
Re : Fonction Range().select

Bon, ça y est avec votre aide j'ai pu déterminer la solution :

Windows("TOTO.xlsm").Activate
lastrow = Range("A5").CurrentRegion.End(xlDown).Row
Range("A5" & lastrow & ", F5:F" & lastrow & ",H5:H" & lastrow & ",J5:J" & lastrow & ",L5:L" & lastrow & "").Select
Selection.Copy
Windows("TITI").Activate
Range("A6").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Bonne soirée à tous,

Jeanvaljean
 

Discussions similaires

Réponses
2
Affichages
179
Réponses
5
Affichages
211
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…