Creation de feuilles avec nom provenant de cellules

Bonjour

je sui un utilisateur relativement novice

J'ai écrit un bout de code dans le but d'automatiser le traitement d'une extraction des résultats d'un test en ligne

Je voudrais créer 1 feuille par élève et la nommer avec les prenom et nom de l'élève

Le code suivant fonctionne sur le premier eleve, il me cree une feuille correctement nommée, puis la boucle devrait poursuivre avec les autres eleves mais me cree 1 feuille nommée "_" puis bloque car "impossible de nommer deux feuilles du même nom"...

Pour info, les colonnes 1 et 2 contiennent respectivement les prenoms et noms à partir de la ligne 11

Voici le code. Merci d'avance

Sub ExempleBoucle()

Dim NoLig As Long

For NoLig = 11 To 30

Worksheets.Add(after:=Worksheets(Worksheets.Count)).Name = Cells(NoLig, 1) & "_" & Cells(NoLig, 2)

Next NoLig

End Sub

Bonjour

Quand tu crées une feuille, celle ci devient la page active

Alors pour renommer les pages suivant les données de la page active (au départ) il faut que tes cellules contenant le nom appartiennent à cette page

Complique ?

Essayes

Sub ExempleBoucle()
Dim NoLig As Long

  With Sheets("La feuille")
    For NoLig = 11 To 30
      Worksheets.Add(after:=Worksheets(Worksheets.Count)).Name = .Cells(NoLig, 1) & "_" & .Cells(NoLig, 2)
    Next NoLig
  End With
End Sub

Remplaces La Feuille par le vrai nom de la page contenant les noms des futures pages

Attention aux . (points) devant Cells

Merci BANZAI64

ça fonctionne parfaitement

Mon projet n'est pas terminé :

En fait, la longueur de ma boucle est variable, selon le nombre de participants.

Je voudrais pouvoir arrêter cette boucle lorsque la cellule traitée contient "Question"

J'ai ajouté une clause If, le résultat est presque parfait mais il crée 1 feuille de trop et bogue

Voici un aperçu du fichier excel

capture

Voici mon code + l'erreur

capture2

Merci d'avance,

Pierre

Bonjour

Une solution : Il faut tester la cellule avant la création de la page

Sub ExempleBoucle()
Dim NoLig As Long

  With Sheets("ClassMarker")
    For NoLig = 11 To 40 Step 3
      If UCase(.Cells(NoLig, 1)) = "QUESTION" Then Exit For
      Worksheets.Add(after:=Worksheets(Worksheets.Count)).Name = .Cells(NoLig, 1) & "_" & .Cells(NoLig, 2)
    Next NoLig
  End With
End Sub

Merci à nouveau.

Par contre, même comportement qu'avec le code précédent...

Pierre

Bonjour

Il faut que tu joignes une copie de ton fichier

J'ai raté quelque chose mais je ne vois pas quoi

Voilà

et merci encore.

Pierre

Bonjour

Tu n'as pas bien recopié la macro

Ce que tu as recopié

If UCase(.Cells(NoLig, 1)) = "Question" Then Exit For

Celle que j'ai postée

If UCase(.Cells(NoLig, 1)) = "QUESTION" Then Exit For

Regardes "QUESTION" est écrit en majuscules

UCase(.Cells(NoLig, 1)) transforme le contenu de la cellule en majuscule et on compare avec "QUESTION" en majuscule

Exemple : Que tu écrives Question ou QUEStion ou question ou QUESTION ou QuEsTiOn le test sera toujours bon

Ok !!

Génial ça marche

J'avais scrupuleusement changé "QUESTION" en "Question"...je ne connaissais pas UCase...novice que je te dis...

Je suis plus porté sur php/mysql...

Je continue à bosser sur ce fichier..tu risques d'entendre encore parler de moi...

Merci encore,

Pierre

Rechercher des sujets similaires à "creation feuilles nom provenant"