Aide pour boucle vba pour Excel 2002

Le
Marine22
Bonsoir,


Depuis une semaine, j'essaie de réaliser une macro vba pour Excel
de ce type :

Sub Formulaire()
'declaration de la variable MyCell

Dim re As String
Dim MyCell As Range, Cell As Range

'donner une valeur à la variable MyCellSet
Set MyCell = Sheets("bilan").Range("J15")
Set Cell = Sheets("bilanjuriste").Range("S15")

'Pour que l'ensemble de la plage J15:J115
For Each MyCell In Sheets("bilan").Range("J15:J115")
Sheets("bulletin").Range("E21").Value = MyCell.Value

'Descendre d'une cellule dans la feuille
Sheets("bilan").Select
Range("J15").Offset(1, 0).Activate
Next MyCell

For Each Cell In Sheets("bilanjuriste").Range("S15:S115")
'imprimer le bulletin
re = MsgBox("Voulez-vous imprimer le bulletin ?", vbQuestion +
vbYesNo, "bulletin etudiant")
If re = vbYes Then ActiveSheet.PrintOut
'Descendre d'une cellule dans la feuille
Sheets("bilanjuriste").Select
Range("S15").Offset(1, 0).Activate
Next Cell


End Sub

En fait, il s'agit de recopier des cellules d'une feuille' bilan' dans
une autre feuille 'bulletin' de façon automatique pour imprimer un
bulletin de notes. Ce bulletin devrait être mis à jour automatiquement
dans la mesure où le même bulletin va servir 100 fois pour 100 élèves
différents.
Comment faire une boucle qui permet de récupérer des données dans la
feuille'bilan' et mettre à jour automatiquement la feuille
' bulletin' ?
Merci d'avance.
Marine
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Patrice Henrio
Le #15496851
A partir des données
Sub Formulaire()
'declaration de la variable MyCell

Dim re As String
Dim MyCell As Range, Cell As Range



Jusque là OK


les deux
"Marine22"

Bonsoir,


Depuis une semaine, j'essaie de réaliser une macro vba pour Excel
de ce type :

Sub Formulaire()
'declaration de la variable MyCell

Dim re As String
Dim MyCell As Range, Cell As Range

'donner une valeur à la variable MyCellSet
Set MyCell = Sheets("bilan").Range("J15")
Set Cell = Sheets("bilanjuriste").Range("S15")

'Pour que l'ensemble de la plage J15:J115
For Each MyCell In Sheets("bilan").Range("J15:J115")
Sheets("bulletin").Range("E21").Value = MyCell.Value

'Descendre d'une cellule dans la feuille
Sheets("bilan").Select
Range("J15").Offset(1, 0).Activate
Next MyCell

For Each Cell In Sheets("bilanjuriste").Range("S15:S115")
'imprimer le bulletin
re = MsgBox("Voulez-vous imprimer le bulletin ?", vbQuestion +
vbYesNo, "bulletin etudiant")
If re = vbYes Then ActiveSheet.PrintOut
'Descendre d'une cellule dans la feuille
Sheets("bilanjuriste").Select
Range("S15").Offset(1, 0).Activate
Next Cell


End Sub

En fait, il s'agit de recopier des cellules d'une feuille' bilan' dans
une autre feuille 'bulletin' de façon automatique pour imprimer un
bulletin de notes. Ce bulletin devrait être mis à jour automatiquement
dans la mesure où le même bulletin va servir 100 fois pour 100 élèves
différents.
Comment faire une boucle qui permet de récupérer des données dans la
feuille'bilan' et mettre à jour automatiquement la feuille
' bulletin' ?
Merci d'avance.
Marine


Patrice Henrio
Le #15496841
Envoi précédent trop rapide


Si j'ai bien compris il s'agit de recopier les cellules "J15:J115" de la
feuille "bilan" dans les cellules "E21:E121" de la feuille "bulletin"
Colonne = 0
With sheets("bulletin")
For each C in sheets("bilan").Range("J15:J115")
.Cells(5,21+Colonne)=C
Ligne=Ligne + 1
Next

'remarque : "E" correspond à la ligne 5, cela marche ici car la plage
concernée tient sur une ligne

même manip pour la feuille "bilanjuriste"

Il faudrait en dire plus pour pouvoir faire quelque chose de plus
performant, mais tu vois au moins le principe

Une autre solution est de créer une macro : tu enregistres les actions que
tu fais pour un bulletin et tu appelles cela "créerbulletin"
tu regardes le code généré et cela te donne des idées.

Au revoir



"Marine22"

Bonsoir,


Depuis une semaine, j'essaie de réaliser une macro vba pour Excel
de ce type :

Sub Formulaire()
'declaration de la variable MyCell

Dim re As String
Dim MyCell As Range, Cell As Range

'donner une valeur à la variable MyCellSet
Set MyCell = Sheets("bilan").Range("J15")
Set Cell = Sheets("bilanjuriste").Range("S15")

'Pour que l'ensemble de la plage J15:J115
For Each MyCell In Sheets("bilan").Range("J15:J115")
Sheets("bulletin").Range("E21").Value = MyCell.Value

'Descendre d'une cellule dans la feuille
Sheets("bilan").Select
Range("J15").Offset(1, 0).Activate
Next MyCell

For Each Cell In Sheets("bilanjuriste").Range("S15:S115")
'imprimer le bulletin
re = MsgBox("Voulez-vous imprimer le bulletin ?", vbQuestion +
vbYesNo, "bulletin etudiant")
If re = vbYes Then ActiveSheet.PrintOut
'Descendre d'une cellule dans la feuille
Sheets("bilanjuriste").Select
Range("S15").Offset(1, 0).Activate
Next Cell


End Sub

En fait, il s'agit de recopier des cellules d'une feuille' bilan' dans
une autre feuille 'bulletin' de façon automatique pour imprimer un
bulletin de notes. Ce bulletin devrait être mis à jour automatiquement
dans la mesure où le même bulletin va servir 100 fois pour 100 élèves
différents.
Comment faire une boucle qui permet de récupérer des données dans la
feuille'bilan' et mettre à jour automatiquement la feuille
' bulletin' ?
Merci d'avance.
Marine


Patrice Henrio
Le #15496831
En relisant le message, je m'aperçois qu'il y a une erreur.

Il faut remplacer la ligne

Ligne=Ligne + 1

par

Colonne = Colonne + 1


De plus j'ai l'impression qu'il s'agit de recopier un tableau en ligne dans
un tableau en colonne

Il suffit de modifier les deux lignes suivantes

.Cells(5,21+Colonne)=C
Ligne=Ligne + 1

par

.Cells(5+Colonne,21)=C

Colonne = Colonne + 1


"Marine22"

Bonsoir,


Depuis une semaine, j'essaie de réaliser une macro vba pour Excel
de ce type :

Sub Formulaire()
'declaration de la variable MyCell

Dim re As String
Dim MyCell As Range, Cell As Range

'donner une valeur à la variable MyCellSet
Set MyCell = Sheets("bilan").Range("J15")
Set Cell = Sheets("bilanjuriste").Range("S15")

'Pour que l'ensemble de la plage J15:J115
For Each MyCell In Sheets("bilan").Range("J15:J115")
Sheets("bulletin").Range("E21").Value = MyCell.Value

'Descendre d'une cellule dans la feuille
Sheets("bilan").Select
Range("J15").Offset(1, 0).Activate
Next MyCell

For Each Cell In Sheets("bilanjuriste").Range("S15:S115")
'imprimer le bulletin
re = MsgBox("Voulez-vous imprimer le bulletin ?", vbQuestion +
vbYesNo, "bulletin etudiant")
If re = vbYes Then ActiveSheet.PrintOut
'Descendre d'une cellule dans la feuille
Sheets("bilanjuriste").Select
Range("S15").Offset(1, 0).Activate
Next Cell


End Sub

En fait, il s'agit de recopier des cellules d'une feuille' bilan' dans
une autre feuille 'bulletin' de façon automatique pour imprimer un
bulletin de notes. Ce bulletin devrait être mis à jour automatiquement
dans la mesure où le même bulletin va servir 100 fois pour 100 élèves
différents.
Comment faire une boucle qui permet de récupérer des données dans la
feuille'bilan' et mettre à jour automatiquement la feuille
' bulletin' ?
Merci d'avance.
Marine


Marine22
Le #15496811
Merci beaucoup.
Marine

Le Tue, 20 Dec 2005 22:11:49 +0100, "Patrice Henrio"

En relisant le message, je m'aperçois qu'il y a une erreur.

Il faut remplacer la ligne

Ligne=Ligne + 1

par

Colonne = Colonne + 1


De plus j'ai l'impression qu'il s'agit de recopier un tableau en ligne dans
un tableau en colonne

Il suffit de modifier les deux lignes suivantes

.Cells(5,21+Colonne)=C
Ligne=Ligne + 1

par

.Cells(5+Colonne,21)=C

Colonne = Colonne + 1


"Marine22"

Bonsoir,


Depuis une semaine, j'essaie de réaliser une macro vba pour Excel
de ce type :

Sub Formulaire()
'declaration de la variable MyCell

Dim re As String
Dim MyCell As Range, Cell As Range

'donner une valeur à la variable MyCellSet
Set MyCell = Sheets("bilan").Range("J15")
Set Cell = Sheets("bilanjuriste").Range("S15")

'Pour que l'ensemble de la plage J15:J115
For Each MyCell In Sheets("bilan").Range("J15:J115")
Sheets("bulletin").Range("E21").Value = MyCell.Value

'Descendre d'une cellule dans la feuille
Sheets("bilan").Select
Range("J15").Offset(1, 0).Activate
Next MyCell

For Each Cell In Sheets("bilanjuriste").Range("S15:S115")
'imprimer le bulletin
re = MsgBox("Voulez-vous imprimer le bulletin ?", vbQuestion +
vbYesNo, "bulletin etudiant")
If re = vbYes Then ActiveSheet.PrintOut
'Descendre d'une cellule dans la feuille
Sheets("bilanjuriste").Select
Range("S15").Offset(1, 0).Activate
Next Cell


End Sub

En fait, il s'agit de recopier des cellules d'une feuille' bilan' dans
une autre feuille 'bulletin' de façon automatique pour imprimer un
bulletin de notes. Ce bulletin devrait être mis à jour automatiquement
dans la mesure où le même bulletin va servir 100 fois pour 100 élèves
différents.
Comment faire une boucle qui permet de récupérer des données dans la
feuille'bilan' et mettre à jour automatiquement la feuille
' bulletin' ?
Merci d'avance.
Marine





Publicité
Poster une réponse
Anonyme