Copier cellules et les collers sur en ligne
Bonjour,
Je débute en VBA Excel et j'ai un petit souci avec ma macro , je m'explique:
sur une feuille nommée "simulation" je voudrais copier certaines cellules que je voudrais coller sur une autre feuille "synthése" en ligne.
J'ai déja réalisé un macro qui copie les cellules mais qui les colle en colonne.
je n'arrive pas à voir quelle modification il faut faire pour que ça les colle en ligne.
Voici mon code:
Sub Macro2()
Sheets("simulation").Activate
Range("T7,T9,T11,T13,T15,T18,T20,T22,T24,T26,T28").Select
Range("T28").Activate
Range("T7,T9,T11,T13,T15,T18,T20,T22,T24,T26,T28,T31,T33,T35,T37,T40,T42,T45"). _
Select
Range("T45").Activate
Application.CutCopyMode = False
Selection.Copy
Sheets("synthése").Select
With Sheets("Synthése")
i = .Cells(65535, 1).End(xlUp).Row
Sheets("simulation").Range("T7,T9,T11,T13,T15,T18,T20,T22,T24,T26,T28,T31,T33,T35,T37,T40,T42,T45").Copy .Cells(i + 1, 1)
End With
End Sub
cordialement.
Bonjour ,
Tout d'abord lorsque tu met du code ou des formules , pense à les mettre entre balise
pour plus de lisibilité .
Ensuite pense à joindre ton fichier (ou un fichier-exemple) , sa aidera pour la réalisation
Ceci dit revenons à ton problème , les lignes que tu souhaite copier sont-elles toujours les mêmes ?
Tu veut les coller à une place spécifique , à la suite des autres lignes , .... ?
cordialement
re,
Tout d'abord merci pour l'attention que vous portez à mon probléme.
En ce qui concerne la macro je souhaite copier des cellules d'une feuil1 par exemple et les coller en ligne dans feuill2 et à chaque fois que je lance la macro ça doit se coller en dessus de la ligne déja existante.
J' ai retravaillé ma macro et pour le moment ca colle bien en ligne mais toujours sur la meme, ça ne colle pas sur la ligne suivante qui est vide.
Voici le code:
Sheets("simulation").Select
Sheets("simulation").Range("T7,T9,T11,T13,T15,T18,T20,T22,T24,T26,T28,T31,T33,T35,T37,T40,T42,T45").Copy
Sheets("synthése").Select
With Sheets("Synthése")
i = .Cells(65535, 1).End(xlUp).Row
For i = 1 To 65535
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
i = i + 1
End With
End Sub
Cordialement
re ,
i = .Cells(65535, 1).End(xlUp).Rowceci te donne la dernière ligne non vide , ajoute simplement +1 à la fin pour avoir la première vide
re,
ça ne marche toujours pas.
J'ai crée un petit classeur en exemple:
en feuil1 il y a les cellules à copier et en feuil2 là où il faut qu'elle soit coller.
J'ai crée la macro mais lorsque elle les colle en colonne.
Cordialement.
Re ,
essaye avec ce code :
Sub Macro1()
Dim i As Integer
Dim feuille1, feuille2 As String
i = 1
feuille1 = "feuil1"
feuille2 = "feuil2"
While IsEmpty(Range(feuille2 & "!A" & i)) = False
i = i + 1
Wend
MsgBox i
Range(feuille2 & "!A" & i) = Range(feuille1 & "!T7")
Range(feuille2 & "!B" & i) = Range(feuille1 & "!T9")
Range(feuille2 & "!C" & i) = Range(feuille1 & "!T11")
Range(feuille2 & "!D" & i) = Range(feuille1 & "!T13")
Range(feuille2 & "!E" & i) = Range(feuille1 & "!T15")
Range(feuille2 & "!F" & i) = Range(feuille1 & "!T18")
Range(feuille2 & "!G" & i) = Range(feuille1 & "!T20")
Range(feuille2 & "!H" & i) = Range(feuille1 & "!T22")
Range(feuille2 & "!I" & i) = Range(feuille1 & "!T24")
Range(feuille2 & "!J" & i) = Range(feuille1 & "!T26")
Range(feuille2 & "!K" & i) = Range(feuille1 & "!T28")
Range(feuille2 & "!L" & i) = Range(feuille1 & "!T31")
Range(feuille2 & "!M" & i) = Range(feuille1 & "!T33")
Range(feuille2 & "!N" & i) = Range(feuille1 & "!T35")
Range(feuille2 & "!O" & i) = Range(feuille1 & "!T37")
Range(feuille2 & "!P" & i) = Range(feuille1 & "!T40")
Range(feuille2 & "!Q" & i) = Range(feuille1 & "!T42")
Range(feuille2 & "!R" & i) = Range(feuille1 & "!T45")
End Subc'est un peu "bourrin" mais si c'est toujours les mêmes lignes sa passera