Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Aide pour boucle vba pour Excel 2002

4 réponses
Avatar
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

4 réponses

Avatar
Patrice Henrio
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" a écrit dans le message de news:


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


Avatar
Patrice Henrio
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" a écrit dans le message de news:


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


Avatar
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" a écrit dans le message de news:


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


Avatar
Marine22
Merci beaucoup.
Marine

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

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" a écrit dans le message de news:


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