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 A5:D5 est copiée!!!

Windows("TOTO.xlsm").Activate
Range("A5:D5,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 :D :

Windows("TOTO.xlsm").Activate
Range("A5").Select
Range(Selection, Selection.End(xlDown)).Select
lastrow=rows(selection)
Range("A5:D" & 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:D" & 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
151
Réponses
5
Affichages
177

Statistiques des forums

Discussions
312 492
Messages
2 088 926
Membres
103 984
dernier inscrit
maliko67