Sous Excel 2002, j'essaie avec un script en Visual Basic de recopier
des données d'une feuilles bilan vers les feuilles bulletinEtudiant
(onglet au nom de chaque étudiant)
Pour l'instant j'arrive à créer le nombre de bulletins étudiants
nécessaires avec l'onglet de chaque feuille au nom de l'étudiant avec
ce script :
Sub InsererFeuillesEtudiant2()
'ce script fonctionne'
Dim i As Integer
Dim etudiant(3) As Range
'Dès lors que toutes les variables sont définies, les feuilles
sont créées automatiquement et comporte le nom de l'étudiant dans
l'onglet de la feuille'
Set etudiant(1) = Sheets("bilaninstitutions").Range("A13")
Set etudiant(2) = Sheets("bilaninstitutions").Range("A14")
Set etudiant(3) = Sheets("bilaninstitutions").Range("A15")
For i = 1 To 3
'le bulletin est copié après la feuille bulletin sur x feuilles
correspondant au nombre d'étudiant et les onglets sont renommés en
fonction du nom des étudiants'
Sheets("bulletin").copy After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = etudiant(i)
Next
End Sub
Je peux également mettre les données d'un étudiant sur une feuille
avec ce script :
Sub InsererMoyennePourUnEtudiant()
'ce script copie B13:K13 de bilaninstitutions vers La feuille Dupond
A E13:E22'
Dim MyCell As Range, TwoCell As Range, TreeCell As Range
For Each MyCell In Worksheets("bilaninstitutions").Range("B13:J13")
Sheets("bilaninstitutions").Select
Range("B13:J13").Select
Selection.copy
Sheets("Dupond A").Select
Range("E13:E21").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:=True
For Each TwoCell In Worksheets("bilaninstitutions").Range("L13:S13")
Sheets("bilaninstitutions").Select
Range("L13:S13").Select
Selection.copy
Sheets("Dupond A").Select
Range("E27:E34").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:=True
For Each TreeCell In Worksheets("bilaninstitutions").Range("U13:V13")
Sheets("bilaninstitutions").Select
Range("U13:V13").Select
Selection.copy
Sheets("Dupond A").Select
Range("E40:E41").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:=True
En revanche, je n'arrive pas à mettre les données de la feuille bilan
pour chaque étudiant sur chaque feuille bulletin à son nom. Qui
pourrait me suggérer des pistes à suivre ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Patrice Henrio
Il me semble qu'il s'agit plutôt d'une macro en VBA (Visual Basic Application) et non d'un script.
On va essayer de décortiquer ton code
Si on se contente de ce qui est dit : copier B13:K13 de 'bilaninstitutions' vers E13:E22 de Dupond_A
Voici comment je ferai Dim C as range, Ligne as long Ligne For each C in Sheets("bilaninstitutions").Range("B13:K13") Sheets("Dupont A").Cells(Ligne,5)=C Ligne=Ligne+1 Next C
Si on veut automatiser tpus les étudiants (trois dans ton exemple)
Dim C as range, Etudiant as range, Ligne as long
For each étudiant in Sheets("bilaninstitution").range("A13:A15") Ligne For each C in Sheets("bilaninstitutions").Range("B13:K13") Sheets(étudiant.Value).Cells(Ligne,5)=C Ligne=Ligne+1 Next C Next étudiant
Si tu veux te débarasser de la connaissanc edu nombre d'étudiants, tu nommes la partie de la feuille contenant l'ensemble des noms de tes étudiants "étudiants" : tu sélectionnes la zone et tu choisis "Insérer/Nom/Définir" Ensuite le code s'écrit
Dim C as range, Etudiant as range, Ligne as long
For each étudiant in range("étudiants") Ligne For each C in Sheets("bilaninstitutions").Range("B13:K13") Sheets(étudiant.Value).Cells(Ligne,5)=C Ligne=Ligne+1 Next C Next étudiant
Je n'ai pas très bien compris la suite des opérations.
Tu peux m'envoyer ton fichier Excel en l'état que je puisse regrader de plus près.
Salut et bonne année.
"Marine22" a écrit dans le message de news:
Bonsoir,
Sous Excel 2002, j'essaie avec un script en Visual Basic de recopier des données d'une feuilles bilan vers les feuilles bulletinEtudiant (onglet au nom de chaque étudiant) Pour l'instant j'arrive à créer le nombre de bulletins étudiants nécessaires avec l'onglet de chaque feuille au nom de l'étudiant avec ce script :
Sub InsererFeuillesEtudiant2() 'ce script fonctionne' Dim i As Integer Dim etudiant(3) As Range 'Dès lors que toutes les variables sont définies, les feuilles sont créées automatiquement et comporte le nom de l'étudiant dans l'onglet de la feuille' Set etudiant(1) = Sheets("bilaninstitutions").Range("A13") Set etudiant(2) = Sheets("bilaninstitutions").Range("A14") Set etudiant(3) = Sheets("bilaninstitutions").Range("A15") For i = 1 To 3 'le bulletin est copié après la feuille bulletin sur x feuilles correspondant au nombre d'étudiant et les onglets sont renommés en fonction du nom des étudiants' Sheets("bulletin").copy After:=Worksheets(Worksheets.Count) ActiveSheet.Name = etudiant(i) Next End Sub
Je peux également mettre les données d'un étudiant sur une feuille avec ce script :
Sub InsererMoyennePourUnEtudiant() 'ce script copie B13:K13 de bilaninstitutions vers La feuille Dupond A E13:E22' Dim MyCell As Range, TwoCell As Range, TreeCell As Range
For Each MyCell In Worksheets("bilaninstitutions").Range("B13:J13") Sheets("bilaninstitutions").Select Range("B13:J13").Select Selection.copy Sheets("Dupond A").Select Range("E13:E21").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True
For Each TwoCell In Worksheets("bilaninstitutions").Range("L13:S13") Sheets("bilaninstitutions").Select Range("L13:S13").Select Selection.copy Sheets("Dupond A").Select Range("E27:E34").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True
For Each TreeCell In Worksheets("bilaninstitutions").Range("U13:V13") Sheets("bilaninstitutions").Select Range("U13:V13").Select Selection.copy Sheets("Dupond A").Select Range("E40:E41").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True
En revanche, je n'arrive pas à mettre les données de la feuille bilan pour chaque étudiant sur chaque feuille bulletin à son nom. Qui pourrait me suggérer des pistes à suivre ?
Merci d'avance, Marine
Il me semble qu'il s'agit plutôt d'une macro en VBA (Visual Basic
Application) et non d'un script.
On va essayer de décortiquer ton code
Si on se contente de ce qui est dit : copier B13:K13 de 'bilaninstitutions'
vers E13:E22 de Dupond_A
Voici comment je ferai
Dim C as range, Ligne as long
Ligne
For each C in Sheets("bilaninstitutions").Range("B13:K13")
Sheets("Dupont A").Cells(Ligne,5)=C
Ligne=Ligne+1
Next C
Si on veut automatiser tpus les étudiants (trois dans ton exemple)
Dim C as range, Etudiant as range, Ligne as long
For each étudiant in Sheets("bilaninstitution").range("A13:A15")
Ligne
For each C in Sheets("bilaninstitutions").Range("B13:K13")
Sheets(étudiant.Value).Cells(Ligne,5)=C
Ligne=Ligne+1
Next C
Next étudiant
Si tu veux te débarasser de la connaissanc edu nombre d'étudiants, tu nommes
la partie de la feuille contenant l'ensemble des noms de tes étudiants
"étudiants" : tu sélectionnes la zone et tu choisis "Insérer/Nom/Définir"
Ensuite le code s'écrit
Dim C as range, Etudiant as range, Ligne as long
For each étudiant in range("étudiants")
Ligne
For each C in Sheets("bilaninstitutions").Range("B13:K13")
Sheets(étudiant.Value).Cells(Ligne,5)=C
Ligne=Ligne+1
Next C
Next étudiant
Je n'ai pas très bien compris la suite des opérations.
Tu peux m'envoyer ton fichier Excel en l'état que je puisse regrader de plus
près.
Salut et bonne année.
"Marine22" <marine22@wanadoo.fr> a écrit dans le message de news:
un0br1tsn7v5s7q2nmk9o1q6vqgktcb4j1@4ax.com...
Bonsoir,
Sous Excel 2002, j'essaie avec un script en Visual Basic de recopier
des données d'une feuilles bilan vers les feuilles bulletinEtudiant
(onglet au nom de chaque étudiant)
Pour l'instant j'arrive à créer le nombre de bulletins étudiants
nécessaires avec l'onglet de chaque feuille au nom de l'étudiant avec
ce script :
Sub InsererFeuillesEtudiant2()
'ce script fonctionne'
Dim i As Integer
Dim etudiant(3) As Range
'Dès lors que toutes les variables sont définies, les feuilles
sont créées automatiquement et comporte le nom de l'étudiant dans
l'onglet de la feuille'
Set etudiant(1) = Sheets("bilaninstitutions").Range("A13")
Set etudiant(2) = Sheets("bilaninstitutions").Range("A14")
Set etudiant(3) = Sheets("bilaninstitutions").Range("A15")
For i = 1 To 3
'le bulletin est copié après la feuille bulletin sur x feuilles
correspondant au nombre d'étudiant et les onglets sont renommés en
fonction du nom des étudiants'
Sheets("bulletin").copy After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = etudiant(i)
Next
End Sub
Je peux également mettre les données d'un étudiant sur une feuille
avec ce script :
Sub InsererMoyennePourUnEtudiant()
'ce script copie B13:K13 de bilaninstitutions vers La feuille Dupond
A E13:E22'
Dim MyCell As Range, TwoCell As Range, TreeCell As Range
For Each MyCell In Worksheets("bilaninstitutions").Range("B13:J13")
Sheets("bilaninstitutions").Select
Range("B13:J13").Select
Selection.copy
Sheets("Dupond A").Select
Range("E13:E21").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:=True
For Each TwoCell In Worksheets("bilaninstitutions").Range("L13:S13")
Sheets("bilaninstitutions").Select
Range("L13:S13").Select
Selection.copy
Sheets("Dupond A").Select
Range("E27:E34").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:=True
For Each TreeCell In Worksheets("bilaninstitutions").Range("U13:V13")
Sheets("bilaninstitutions").Select
Range("U13:V13").Select
Selection.copy
Sheets("Dupond A").Select
Range("E40:E41").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:=True
En revanche, je n'arrive pas à mettre les données de la feuille bilan
pour chaque étudiant sur chaque feuille bulletin à son nom. Qui
pourrait me suggérer des pistes à suivre ?
Il me semble qu'il s'agit plutôt d'une macro en VBA (Visual Basic Application) et non d'un script.
On va essayer de décortiquer ton code
Si on se contente de ce qui est dit : copier B13:K13 de 'bilaninstitutions' vers E13:E22 de Dupond_A
Voici comment je ferai Dim C as range, Ligne as long Ligne For each C in Sheets("bilaninstitutions").Range("B13:K13") Sheets("Dupont A").Cells(Ligne,5)=C Ligne=Ligne+1 Next C
Si on veut automatiser tpus les étudiants (trois dans ton exemple)
Dim C as range, Etudiant as range, Ligne as long
For each étudiant in Sheets("bilaninstitution").range("A13:A15") Ligne For each C in Sheets("bilaninstitutions").Range("B13:K13") Sheets(étudiant.Value).Cells(Ligne,5)=C Ligne=Ligne+1 Next C Next étudiant
Si tu veux te débarasser de la connaissanc edu nombre d'étudiants, tu nommes la partie de la feuille contenant l'ensemble des noms de tes étudiants "étudiants" : tu sélectionnes la zone et tu choisis "Insérer/Nom/Définir" Ensuite le code s'écrit
Dim C as range, Etudiant as range, Ligne as long
For each étudiant in range("étudiants") Ligne For each C in Sheets("bilaninstitutions").Range("B13:K13") Sheets(étudiant.Value).Cells(Ligne,5)=C Ligne=Ligne+1 Next C Next étudiant
Je n'ai pas très bien compris la suite des opérations.
Tu peux m'envoyer ton fichier Excel en l'état que je puisse regrader de plus près.
Salut et bonne année.
"Marine22" a écrit dans le message de news:
Bonsoir,
Sous Excel 2002, j'essaie avec un script en Visual Basic de recopier des données d'une feuilles bilan vers les feuilles bulletinEtudiant (onglet au nom de chaque étudiant) Pour l'instant j'arrive à créer le nombre de bulletins étudiants nécessaires avec l'onglet de chaque feuille au nom de l'étudiant avec ce script :
Sub InsererFeuillesEtudiant2() 'ce script fonctionne' Dim i As Integer Dim etudiant(3) As Range 'Dès lors que toutes les variables sont définies, les feuilles sont créées automatiquement et comporte le nom de l'étudiant dans l'onglet de la feuille' Set etudiant(1) = Sheets("bilaninstitutions").Range("A13") Set etudiant(2) = Sheets("bilaninstitutions").Range("A14") Set etudiant(3) = Sheets("bilaninstitutions").Range("A15") For i = 1 To 3 'le bulletin est copié après la feuille bulletin sur x feuilles correspondant au nombre d'étudiant et les onglets sont renommés en fonction du nom des étudiants' Sheets("bulletin").copy After:=Worksheets(Worksheets.Count) ActiveSheet.Name = etudiant(i) Next End Sub
Je peux également mettre les données d'un étudiant sur une feuille avec ce script :
Sub InsererMoyennePourUnEtudiant() 'ce script copie B13:K13 de bilaninstitutions vers La feuille Dupond A E13:E22' Dim MyCell As Range, TwoCell As Range, TreeCell As Range
For Each MyCell In Worksheets("bilaninstitutions").Range("B13:J13") Sheets("bilaninstitutions").Select Range("B13:J13").Select Selection.copy Sheets("Dupond A").Select Range("E13:E21").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True
For Each TwoCell In Worksheets("bilaninstitutions").Range("L13:S13") Sheets("bilaninstitutions").Select Range("L13:S13").Select Selection.copy Sheets("Dupond A").Select Range("E27:E34").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True
For Each TreeCell In Worksheets("bilaninstitutions").Range("U13:V13") Sheets("bilaninstitutions").Select Range("U13:V13").Select Selection.copy Sheets("Dupond A").Select Range("E40:E41").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True
En revanche, je n'arrive pas à mettre les données de la feuille bilan pour chaque étudiant sur chaque feuille bulletin à son nom. Qui pourrait me suggérer des pistes à suivre ?
Merci d'avance, Marine
Marine22
Bonsoir,
Je te transmets le fichier sur ta messagerie. Merci beaucoup pour l'aide et Bonne année. Marine
Le Sat, 31 Dec 2005 13:38:27 +0100, "Patrice Henrio" a écrit :
Il me semble qu'il s'agit plutôt d'une macro en VBA (Visual Basic Application) et non d'un script.
On va essayer de décortiquer ton code
Si on se contente de ce qui est dit : copier B13:K13 de 'bilaninstitutions' vers E13:E22 de Dupond_A
Voici comment je ferai Dim C as range, Ligne as long Ligne For each C in Sheets("bilaninstitutions").Range("B13:K13") Sheets("Dupont A").Cells(Ligne,5)=C Ligne=Ligne+1 Next C
Si on veut automatiser tpus les étudiants (trois dans ton exemple)
Dim C as range, Etudiant as range, Ligne as long
For each étudiant in Sheets("bilaninstitution").range("A13:A15") Ligne For each C in Sheets("bilaninstitutions").Range("B13:K13") Sheets(étudiant.Value).Cells(Ligne,5)=C Ligne=Ligne+1 Next C Next étudiant
Si tu veux te débarasser de la connaissanc edu nombre d'étudiants, tu nommes la partie de la feuille contenant l'ensemble des noms de tes étudiants "étudiants" : tu sélectionnes la zone et tu choisis "Insérer/Nom/Définir" Ensuite le code s'écrit
Dim C as range, Etudiant as range, Ligne as long
For each étudiant in range("étudiants") Ligne For each C in Sheets("bilaninstitutions").Range("B13:K13") Sheets(étudiant.Value).Cells(Ligne,5)=C Ligne=Ligne+1 Next C Next étudiant
Je n'ai pas très bien compris la suite des opérations.
Tu peux m'envoyer ton fichier Excel en l'état que je puisse regrader de plus près.
Salut et bonne année.
"Marine22" a écrit dans le message de news:
Bonsoir,
Sous Excel 2002, j'essaie avec un script en Visual Basic de recopier des données d'une feuilles bilan vers les feuilles bulletinEtudiant (onglet au nom de chaque étudiant) Pour l'instant j'arrive à créer le nombre de bulletins étudiants nécessaires avec l'onglet de chaque feuille au nom de l'étudiant avec ce script :
Sub InsererFeuillesEtudiant2() 'ce script fonctionne' Dim i As Integer Dim etudiant(3) As Range 'Dès lors que toutes les variables sont définies, les feuilles sont créées automatiquement et comporte le nom de l'étudiant dans l'onglet de la feuille' Set etudiant(1) = Sheets("bilaninstitutions").Range("A13") Set etudiant(2) = Sheets("bilaninstitutions").Range("A14") Set etudiant(3) = Sheets("bilaninstitutions").Range("A15") For i = 1 To 3 'le bulletin est copié après la feuille bulletin sur x feuilles correspondant au nombre d'étudiant et les onglets sont renommés en fonction du nom des étudiants' Sheets("bulletin").copy After:=Worksheets(Worksheets.Count) ActiveSheet.Name = etudiant(i) Next End Sub
Je peux également mettre les données d'un étudiant sur une feuille avec ce script :
Sub InsererMoyennePourUnEtudiant() 'ce script copie B13:K13 de bilaninstitutions vers La feuille Dupond A E13:E22' Dim MyCell As Range, TwoCell As Range, TreeCell As Range
For Each MyCell In Worksheets("bilaninstitutions").Range("B13:J13") Sheets("bilaninstitutions").Select Range("B13:J13").Select Selection.copy Sheets("Dupond A").Select Range("E13:E21").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True
For Each TwoCell In Worksheets("bilaninstitutions").Range("L13:S13") Sheets("bilaninstitutions").Select Range("L13:S13").Select Selection.copy Sheets("Dupond A").Select Range("E27:E34").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True
For Each TreeCell In Worksheets("bilaninstitutions").Range("U13:V13") Sheets("bilaninstitutions").Select Range("U13:V13").Select Selection.copy Sheets("Dupond A").Select Range("E40:E41").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True
En revanche, je n'arrive pas à mettre les données de la feuille bilan pour chaque étudiant sur chaque feuille bulletin à son nom. Qui pourrait me suggérer des pistes à suivre ?
Merci d'avance, Marine
Bonsoir,
Je te transmets le fichier sur ta messagerie.
Merci beaucoup pour l'aide et Bonne année.
Marine
Le Sat, 31 Dec 2005 13:38:27 +0100, "Patrice Henrio"
<patrice.henrio@laposte.net> a écrit :
Il me semble qu'il s'agit plutôt d'une macro en VBA (Visual Basic
Application) et non d'un script.
On va essayer de décortiquer ton code
Si on se contente de ce qui est dit : copier B13:K13 de 'bilaninstitutions'
vers E13:E22 de Dupond_A
Voici comment je ferai
Dim C as range, Ligne as long
Ligne
For each C in Sheets("bilaninstitutions").Range("B13:K13")
Sheets("Dupont A").Cells(Ligne,5)=C
Ligne=Ligne+1
Next C
Si on veut automatiser tpus les étudiants (trois dans ton exemple)
Dim C as range, Etudiant as range, Ligne as long
For each étudiant in Sheets("bilaninstitution").range("A13:A15")
Ligne
For each C in Sheets("bilaninstitutions").Range("B13:K13")
Sheets(étudiant.Value).Cells(Ligne,5)=C
Ligne=Ligne+1
Next C
Next étudiant
Si tu veux te débarasser de la connaissanc edu nombre d'étudiants, tu nommes
la partie de la feuille contenant l'ensemble des noms de tes étudiants
"étudiants" : tu sélectionnes la zone et tu choisis "Insérer/Nom/Définir"
Ensuite le code s'écrit
Dim C as range, Etudiant as range, Ligne as long
For each étudiant in range("étudiants")
Ligne
For each C in Sheets("bilaninstitutions").Range("B13:K13")
Sheets(étudiant.Value).Cells(Ligne,5)=C
Ligne=Ligne+1
Next C
Next étudiant
Je n'ai pas très bien compris la suite des opérations.
Tu peux m'envoyer ton fichier Excel en l'état que je puisse regrader de plus
près.
Salut et bonne année.
"Marine22" <marine22@wanadoo.fr> a écrit dans le message de news:
un0br1tsn7v5s7q2nmk9o1q6vqgktcb4j1@4ax.com...
Bonsoir,
Sous Excel 2002, j'essaie avec un script en Visual Basic de recopier
des données d'une feuilles bilan vers les feuilles bulletinEtudiant
(onglet au nom de chaque étudiant)
Pour l'instant j'arrive à créer le nombre de bulletins étudiants
nécessaires avec l'onglet de chaque feuille au nom de l'étudiant avec
ce script :
Sub InsererFeuillesEtudiant2()
'ce script fonctionne'
Dim i As Integer
Dim etudiant(3) As Range
'Dès lors que toutes les variables sont définies, les feuilles
sont créées automatiquement et comporte le nom de l'étudiant dans
l'onglet de la feuille'
Set etudiant(1) = Sheets("bilaninstitutions").Range("A13")
Set etudiant(2) = Sheets("bilaninstitutions").Range("A14")
Set etudiant(3) = Sheets("bilaninstitutions").Range("A15")
For i = 1 To 3
'le bulletin est copié après la feuille bulletin sur x feuilles
correspondant au nombre d'étudiant et les onglets sont renommés en
fonction du nom des étudiants'
Sheets("bulletin").copy After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = etudiant(i)
Next
End Sub
Je peux également mettre les données d'un étudiant sur une feuille
avec ce script :
Sub InsererMoyennePourUnEtudiant()
'ce script copie B13:K13 de bilaninstitutions vers La feuille Dupond
A E13:E22'
Dim MyCell As Range, TwoCell As Range, TreeCell As Range
For Each MyCell In Worksheets("bilaninstitutions").Range("B13:J13")
Sheets("bilaninstitutions").Select
Range("B13:J13").Select
Selection.copy
Sheets("Dupond A").Select
Range("E13:E21").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:=True
For Each TwoCell In Worksheets("bilaninstitutions").Range("L13:S13")
Sheets("bilaninstitutions").Select
Range("L13:S13").Select
Selection.copy
Sheets("Dupond A").Select
Range("E27:E34").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:=True
For Each TreeCell In Worksheets("bilaninstitutions").Range("U13:V13")
Sheets("bilaninstitutions").Select
Range("U13:V13").Select
Selection.copy
Sheets("Dupond A").Select
Range("E40:E41").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:=True
En revanche, je n'arrive pas à mettre les données de la feuille bilan
pour chaque étudiant sur chaque feuille bulletin à son nom. Qui
pourrait me suggérer des pistes à suivre ?
Je te transmets le fichier sur ta messagerie. Merci beaucoup pour l'aide et Bonne année. Marine
Le Sat, 31 Dec 2005 13:38:27 +0100, "Patrice Henrio" a écrit :
Il me semble qu'il s'agit plutôt d'une macro en VBA (Visual Basic Application) et non d'un script.
On va essayer de décortiquer ton code
Si on se contente de ce qui est dit : copier B13:K13 de 'bilaninstitutions' vers E13:E22 de Dupond_A
Voici comment je ferai Dim C as range, Ligne as long Ligne For each C in Sheets("bilaninstitutions").Range("B13:K13") Sheets("Dupont A").Cells(Ligne,5)=C Ligne=Ligne+1 Next C
Si on veut automatiser tpus les étudiants (trois dans ton exemple)
Dim C as range, Etudiant as range, Ligne as long
For each étudiant in Sheets("bilaninstitution").range("A13:A15") Ligne For each C in Sheets("bilaninstitutions").Range("B13:K13") Sheets(étudiant.Value).Cells(Ligne,5)=C Ligne=Ligne+1 Next C Next étudiant
Si tu veux te débarasser de la connaissanc edu nombre d'étudiants, tu nommes la partie de la feuille contenant l'ensemble des noms de tes étudiants "étudiants" : tu sélectionnes la zone et tu choisis "Insérer/Nom/Définir" Ensuite le code s'écrit
Dim C as range, Etudiant as range, Ligne as long
For each étudiant in range("étudiants") Ligne For each C in Sheets("bilaninstitutions").Range("B13:K13") Sheets(étudiant.Value).Cells(Ligne,5)=C Ligne=Ligne+1 Next C Next étudiant
Je n'ai pas très bien compris la suite des opérations.
Tu peux m'envoyer ton fichier Excel en l'état que je puisse regrader de plus près.
Salut et bonne année.
"Marine22" a écrit dans le message de news:
Bonsoir,
Sous Excel 2002, j'essaie avec un script en Visual Basic de recopier des données d'une feuilles bilan vers les feuilles bulletinEtudiant (onglet au nom de chaque étudiant) Pour l'instant j'arrive à créer le nombre de bulletins étudiants nécessaires avec l'onglet de chaque feuille au nom de l'étudiant avec ce script :
Sub InsererFeuillesEtudiant2() 'ce script fonctionne' Dim i As Integer Dim etudiant(3) As Range 'Dès lors que toutes les variables sont définies, les feuilles sont créées automatiquement et comporte le nom de l'étudiant dans l'onglet de la feuille' Set etudiant(1) = Sheets("bilaninstitutions").Range("A13") Set etudiant(2) = Sheets("bilaninstitutions").Range("A14") Set etudiant(3) = Sheets("bilaninstitutions").Range("A15") For i = 1 To 3 'le bulletin est copié après la feuille bulletin sur x feuilles correspondant au nombre d'étudiant et les onglets sont renommés en fonction du nom des étudiants' Sheets("bulletin").copy After:=Worksheets(Worksheets.Count) ActiveSheet.Name = etudiant(i) Next End Sub
Je peux également mettre les données d'un étudiant sur une feuille avec ce script :
Sub InsererMoyennePourUnEtudiant() 'ce script copie B13:K13 de bilaninstitutions vers La feuille Dupond A E13:E22' Dim MyCell As Range, TwoCell As Range, TreeCell As Range
For Each MyCell In Worksheets("bilaninstitutions").Range("B13:J13") Sheets("bilaninstitutions").Select Range("B13:J13").Select Selection.copy Sheets("Dupond A").Select Range("E13:E21").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True
For Each TwoCell In Worksheets("bilaninstitutions").Range("L13:S13") Sheets("bilaninstitutions").Select Range("L13:S13").Select Selection.copy Sheets("Dupond A").Select Range("E27:E34").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True
For Each TreeCell In Worksheets("bilaninstitutions").Range("U13:V13") Sheets("bilaninstitutions").Select Range("U13:V13").Select Selection.copy Sheets("Dupond A").Select Range("E40:E41").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True
En revanche, je n'arrive pas à mettre les données de la feuille bilan pour chaque étudiant sur chaque feuille bulletin à son nom. Qui pourrait me suggérer des pistes à suivre ?