VBA Range avec variables

  • Initiateur de la discussion Initiateur de la discussion hypo78
  • 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 !

hypo78

XLDnaute Impliqué
Bonjour,
je rencontre un petit problème avec ce code :

Code:
 Sub synthese()
Dim i As Long

For i = 3 To 12

Sheets("Synthese_Stagiaires").Range(Cells(i, 2), Cells(i, 39)) = Sheets("1").Range("B56:AN56").Value

Next i

End Sub

Ce code fonctionne mais bien évidemment me copie 10 fois la même ligne.
Lorsque je veux faire intervenir la variable comme çà :

Code:
Sheets("Synthese_Stagiaires").Range(Cells(i, 2), Cells(i, 39)) = Sheets("1").Range(Cells((51 + i), 2), Cells((51 + i), 39)).Value

J'ai le message :erreur d'éxecution 1004, erreur définie par l'application ou par l'objet.

Merci d'avance pour votre aide
 
Re : VBA Range avec variables

Bonjour le fil, bonjour le forum,

Essaie comme ça :

Code:
Sub synthese()
Dim i As Byte

For i = 3 To 12
    Sheets("Synthese_Stagiaires").Range(Sheets("Synthese_Stagiaires").Cells(i, 2), Sheets("Synthese_Stagiaires").Cells(i, 39)) = Sheets("1").Range(Sheets("1").Cells((51 + i), 2), Sheets("1").Cells((51 + i), 39)).Value
Next i
End Sub
 
Dernière édition:
Re : VBA Range avec variables

Re,


@Dranreb j'ai essayé çà mais çà ne fonctionne pas
Code:
Sub synthese()

Dim Fdest As Worksheet
Dim FSrc As Worksheet

Fdest = Sheets("Synthese_Stagiaires")
FSrc = Sheets("1")

Fdest.[B3:AN12].Value = FSrc.[B52:AN61].Value

End Sub
 
Re : VBA Range avec variables

Bonjour le fil, bonjour le forum,

En reprenant le code de Bernard ça donnerait :

Code:
Sub synthese()
Dim DEST As Object
Dim Src As Object

Set DEST = Sheets("Synthese_Stagiaires")
Set Src = Sheets("1")
DEST.[B3:AN12].Value = Src.[B52:AN61].Value
End Sub

Perso, j'aurais écris le code comme ça :
Code:
Sub synthese()
Dim D As Object
Dim S As Object
Dim I As Byte

Set D = Sheets("Synthese_Stagiaires")
Set S = Sheets("1")
For I = 3 To 12
    D.Cells(I, 2).Value = S.Range(S.Cells(I + 51, 2), S.Cells(I + 51, 39))
Next I
End Sub
 
Dernière édition:
Re : VBA Range avec variables

@ robert,

ton premier code sur la base de Bernard fonctionne, mais pas le second.
je n'arrive pas à boucler sur l'ensemble de mes feuilles. Comment peut-on faire varier

Code:
Set Src = Sheets("1")
 
Re : VBA Range avec variables

Bonjour le fil, bonjour le forum,

Essaie comme ça :

Code:
Sub synthese()
Dim DEST As Object
Dim I As Byte
Dim Src As Object

Set DEST = Sheets("Synthese_Stagiaires")
For I = 1 To 60
    Set Src = Sheets(CStr(I))
    DEST.[B3:AN12].Value = Src.[B52:AN61].Value
Next I
End Sub

Si ça ne marche pas, envoie un fichier exemple...
 
Re : VBA Range avec variables

Bon ben je reviens....

le code actuel

Code:
Sub synthese()
Dim DEST As Object
Dim I As Byte
Dim J As Byte
Dim Src As Object

Set DEST = Sheets("Synthese_Stagiaires")
For I = 1 To 60
J = 3


Set Src = Sheets(CStr(I))
    DEST.Range(Cells(J, 2), Cells(J + 9, 39)).Value = Src.[B54:AN63].Value
Next I


End Sub

mais comment faire varier J pour avoir 3, puis 13 puis 23 ......
 
Re : VBA Range avec variables

C'est bon j'ai trouvé une solution

Code:
 Sub synthese()
Dim DEST As Object
Dim I As Byte

Dim Src As Object

Set DEST = Sheets("Synthese_Stagiaires")
For I = 1 To 5
J = [D65536].End(xlUp)(2).Row


Set Src = Sheets(CStr(I))
    DEST.Range(Cells(J, 2), Cells(J + 9, 39)).Value = Src.[B54:AN63].Value
Next I


End Sub
 
- 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

Discussions similaires

Réponses
5
Affichages
839
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
4
Affichages
692
Retour