copier et coller plage de cellules

  • Initiateur de la discussion Initiateur de la discussion gagletor
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

gagletor

Guest
Bonjour à tous,

J'ai un petit souci sous excel 97.

Je dipose d'un classeur, composé de plusieurs feuilles.

Je voudrais copier une ligne allant de la cellule A6 à I6 de la feuil1 pour ensuite la coller sur la ligne 10 à partir de la case A sur la feuil11. Le tout en ajoutant une ligne avant de coller la ligne.

En résumé :

Je copie la plage A6:I6 de la feuil1
J'insère une ligne par rapport à A10 en feuil11
Je colle ma ligne en A10

En vous remerciant par avance

bonne journée
 
bonjour !
voici le code VBA :

Sheets('Feuil1').Select
Range('A6:I6').Select
Selection.Copy
Sheets('Feuil11').Select
Rows('10:10').Select
Selection.Insert Shift:=xlDown
Application.CutCopyMode = False

Si tu ne connais pas le code, la façon la plus simple de l'obtenir est de passer par l'enregistreur de macro.

Bonne journée !
 
bonjour !
voici le code VBA :

Sheets('Feuil1').Select
Range('A6:I6').Select
Selection.Copy
Sheets('Feuil11').Select
Rows('10:10').Select
Selection.Insert Shift:=xlDown
Application.CutCopyMode = False

Si tu ne connais pas le code, la façon la plus simple de l'obtenir est de passer par l'enregistreur de macro.

Bonne journée !
 
Merci clarisse pour ton aide,

En fait j'ai posé la question car le code que j'avais tapé me fait une erreur. Je voulais être certain de ce que j'avais. N'ayant plus utilisé excel depuis qq mois..

En fait j'ai une erreur indice en dehors de la plage, voici mon code :

Private Sub CommandButton1_Click()
Dim i As Integer
Sheets('Feuil1').Select
For i = 6 To 13
If Cells(i, 1) < Cells(2, 2) Then
Range(ActiveCell(i, 1), ActiveCell(i, 9)).Select
Selection.Copy
Sheets('Feuil11').Select
Rows('10:10').Select
Selection.insert Shift:=xlDown
Application.CutCopyMode = False
Else
Exit Sub
End If
Next
End Sub

Je fais une comparaison de date dans mon tableau de la feuil1. Si la date de ma ligne est inférieur à la date du jour, je copie/colle la ligne dans le tableau de la feuil11, qui me sert d'historique.

Il me surligne en jaune la ligne 'Sheets('Feuil1').Select' et me dit erreur d'execution 9 : indice en dehors de la plage.

Je ne sais pas d'où celà peut venir..

Merci de votre aide
 
ok, désolée j'ai cru que ton problème était juste de connaitre le code.

autre question peut être bête, dans ton code, tu as :

Range(ActiveCell(i, 1), ActiveCell(i, 9)).Select

mais as tu activé les cellules avant ?

j'ai essayé ton code, j'ai pas l'erreur que tu as..
 
c'est encore moi

essaye ce code là, il marche chez moi dis moi si il réponds à ta question :

Dim i As Integer
Sheets('Feuil1').Select
For i = 6 To 13
Sheets('Feuil1').Select
If Cells(i, 1) < Cells(2, 2) Then
Range((Cells(i, 1)), Cells(i, 9)).Select
Selection.Copy
Sheets('Feuil11').Select
Rows('10:10').Select
Selection.Insert Shift:=xlDown
Application.CutCopyMode = False
End If
Next

en fait, il faut selectionner la feuil1 dans la boucle 'for', sinon tu compares les cellules de la feuil11 quand tu repasses dans la boucle 'if'..
Et en retirant le activeCell (je n'ai pas très bien compris à quoi il servait dans ce cas là.. mais je peux me tromper), cela marche très bien.
 
c'est encore moi

essaye ce code là, il marche chez moi dis moi si il réponds à ta question :

Dim i As Integer
Sheets('Feuil1').Select
For i = 6 To 13
Sheets('Feuil1').Select
If Cells(i, 1) < Cells(2, 2) Then
Range((Cells(i, 1)), Cells(i, 9)).Select
Selection.Copy
Sheets('Feuil11').Select
Rows('10:10').Select
Selection.Insert Shift:=xlDown
Application.CutCopyMode = False
End If
Next

en fait, il faut selectionner la feuil1 dans la boucle 'for', sinon tu compares les cellules de la feuil11 quand tu repasses dans la boucle 'if'..
Et en retirant le activeCell (je n'ai pas très bien compris à quoi il servait dans ce cas là.. mais je peux me tromper), cela marche très bien.
 
c'est encore moi

essaye ce code là, il marche chez moi dis moi si il réponds à ta question :

Dim i As Integer
Sheets('Feuil1').Select
For i = 6 To 13
Sheets('Feuil1').Select
If Cells(i, 1) < Cells(2, 2) Then
Range((Cells(i, 1)), Cells(i, 9)).Select
Selection.Copy
Sheets('Feuil11').Select
Rows('10:10').Select
Selection.Insert Shift:=xlDown
Application.CutCopyMode = False
End If
Next

en fait, il faut selectionner la feuil1 dans la boucle 'for', sinon tu compares les cellules de la feuil11 quand tu repasses dans la boucle 'if'..
Et en retirant le activeCell (je n'ai pas très bien compris à quoi il servait dans ce cas là.. mais je peux me tromper), cela marche très bien.
 
Merci pour ton code je vais l'essayer tout de suite, si ça fonctionne je t'invite à déjeuner 😉

POur la répétition des messages je ne vois pas trop non, celà marrive quelques fois.

encore merci
 
Salut gagletor, clarisse, le Forum,

Pour les doublons de message j'ai peut-être une petite idée. Ne fait tu pas, par hasard, 'Reculer d'une page' ou 'page précedente' après avoir posté ? si oui... ne cherche plus c'est ça :lol: :lol: :lol:
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
155
Réponses
10
Affichages
480
Réponses
2
Affichages
445
Retour