Fonction ou macro copie de feuille en feuille
Résolu
JOLARITALE
Messages postés
149
Statut
Membre
-
JOLARITALE Messages postés 149 Statut Membre -
JOLARITALE Messages postés 149 Statut Membre -
Bonjour,
j'ai un classeur de 350 feuilles, avec un première feuille, une liste du nom de toutes les feuilles du classeur.
Toutes les feuilles sont simillaire et ont des nom de format N+un chiffre.
Voila ma feuille 1
colonne A
Nom de feuille
Modèle
N5
N7
N10
N20
N22
etc
je voudrais que pour chaque nom de feuille une fonction ou une macro alle dans la feuille portant ce nom et me mette en colonne B la valeur de la cellule C5 (Nom) et en colonne C la valeur de la cellule C6(prénom).
Donnant
Colonne A.....Colonne B.....Colonne C
Nom de feuille
Modèle
N5.......... Nom N5..... Prénom N5
N7.......... Nom N7..... Prénom N7
N10..... Nom N10..... Prénom N10
N20..... Nom N10..... Prénom N20
N22..... Nom N22..... Prénom N22
j'ai un classeur de 350 feuilles, avec un première feuille, une liste du nom de toutes les feuilles du classeur.
Toutes les feuilles sont simillaire et ont des nom de format N+un chiffre.
Voila ma feuille 1
colonne A
Nom de feuille
Modèle
N5
N7
N10
N20
N22
etc
je voudrais que pour chaque nom de feuille une fonction ou une macro alle dans la feuille portant ce nom et me mette en colonne B la valeur de la cellule C5 (Nom) et en colonne C la valeur de la cellule C6(prénom).
Donnant
Colonne A.....Colonne B.....Colonne C
Nom de feuille
Modèle
N5.......... Nom N5..... Prénom N5
N7.......... Nom N7..... Prénom N7
N10..... Nom N10..... Prénom N10
N20..... Nom N10..... Prénom N20
N22..... Nom N22..... Prénom N22
A voir également:
- Fonction ou macro copie de feuille en feuille
- Fonction si ou - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Bruler feuille de laurier - Guide
- Comment imprimer en a5 sur une feuille a4 - Guide
- Feuille de score belote excel - Forum Graphisme
24 réponses
Salut
Tes feuilles sont numerotees aleatoirement ou de 1 a 350?
Tu as deja l'affichage de base sur ta feuille 1:
?
Et tu as besoin d'une macro juste pour afficher les noms et prenoms ou le reste egalement ?
Tes feuilles sont numerotees aleatoirement ou de 1 a 350?
Tu as deja l'affichage de base sur ta feuille 1:
colonne A Nom de feuille Modèle N5 N7 N10 N20 N22 etc
?
Et tu as besoin d'une macro juste pour afficher les noms et prenoms ou le reste egalement ?
Bonjour,
Eriic, j'ai pas tout compris,
Zebulon, mes feuilles sont numéroté de façon croissante de 5 à 3500 mais de manières discontinue
en tout il y en a environ 350.
En cellule C6 decahque feuille il y a un nom et en cellule C7 de chaque feuille il y a un prénom
je voudrais juste les noms et prenoms pas d'autres infos.
Oui, j'ai l'affichage de base de la feuille 1
Grace a PBGunner
Merci
Eriic, j'ai pas tout compris,
Zebulon, mes feuilles sont numéroté de façon croissante de 5 à 3500 mais de manières discontinue
en tout il y en a environ 350.
En cellule C6 decahque feuille il y a un nom et en cellule C7 de chaque feuille il y a un prénom
je voudrais juste les noms et prenoms pas d'autres infos.
Oui, j'ai l'affichage de base de la feuille 1
Grace a PBGunner
Merci
Bonjour,
Eriic, j'ai pas tout compris,
Zebulon, mes feuilles sont numéroté de façon croissante de 5 à 3500 mais de manières discontinue
en tout il y en a environ 350.
En cellule C6 decahque feuille il y a un nom et en cellule C7 de chaque feuille il y a un prénom
je veux juste les noms et prenoms pas d'autres infos.
Oui, j'ai l'affichage de base de la feuille 1
grace a PBGunner
Eriic, j'ai pas tout compris,
Zebulon, mes feuilles sont numéroté de façon croissante de 5 à 3500 mais de manières discontinue
en tout il y en a environ 350.
En cellule C6 decahque feuille il y a un nom et en cellule C7 de chaque feuille il y a un prénom
je veux juste les noms et prenoms pas d'autres infos.
Oui, j'ai l'affichage de base de la feuille 1
grace a PBGunner
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ccm recommence à merdouiller...
Je disais donc :
ça tombe bien, il n'y a rien à comprendre... juste la formule à recopier
eric
Je disais donc :
ça tombe bien, il n'y a rien à comprendre... juste la formule à recopier
eric
Wouhaou!!!
c'est magique!!
je ne comprend rien, mais alors rien du tout!!!
mais c'est géniale :)
Merci :)
c'est magique!!
je ne comprend rien, mais alors rien du tout!!!
mais c'est géniale :)
Merci :)
et pendant qu'on y est y'aurais ps un truc qui me permetrait de ranger mes feuille par ordre croissant?
hihi
hihi
Wouhaou!!!
c'est magique!!
je ne comprend rien, mais alors rien du tout!!!
mais c'est géniale :)
Merci :)
c'est magique!!
je ne comprend rien, mais alors rien du tout!!!
mais c'est géniale :)
Merci :)
un truc qui me permetrait de ranger mes feuille par ordre croissant?
Pas de truc non, seule une macro peut le faire.
J'ai supposé que tu voulais un tri numérique et non pas alphanumérique, le tri n'est pas optimisé mais pour 500 feuilles ça doit suffire...
A coller dans un module :
Teste mais je ne pense pas qu'il y ait des erreurs
eric
Pas de truc non, seule une macro peut le faire.
J'ai supposé que tu voulais un tri numérique et non pas alphanumérique, le tri n'est pas optimisé mais pour 500 feuilles ça doit suffire...
A coller dans un module :
Sub TriFeuilles()
' Rassemble les feuilles Nxx en fin de classeur avec tri numérique sur xx
' Les feuilles ne commençant pas par N restent dans leur ordre d'apparition, remises au début.
Dim i As Long, fini As Boolean
Dim n1 As String, n2 As String, i1 As Long, i2 As Long
Application.ScreenUpdating = True
fini = False
Do While Not fini
fini = True
For i = 1 To Worksheets.Count - 1
n1 = Worksheets(i).Name
n2 = Worksheets(i + 1).Name
If Left(n1, 1) = "N" Then i1 = CLng(Mid(n1, 2)) Else i1 = 0
If Left(n2, 1) = "N" Then i2 = CLng(Mid(n2, 2)) Else i2 = 0
If i1 > i2 Then
Sheets(i + 1).Move Before:=Sheets(i)
fini = False
End If
Next i
Loop
Application.ScreenUpdating = False
End Sub
Teste mais je ne pense pas qu'il y ait des erreurs
eric
Bonjour,
Merci de m'avoir trouvé non pas un truc mais une vrais macro digne de ce nom :)
Mais, ça me donne une erreure où c'est en gras.
Sub TriFeuilles()
' Rassemble les feuilles Nxx en fin de classeur avec tri numérique sur xx
' Les feuilles ne commençant pas par N restent dans leur ordre d'apparition, remises au début.
Dim i As Long, fini As Boolean
Dim n1 As String, n2 As String, i1 As Long, i2 As Long
Application.ScreenUpdating = True
fini = False
Do While Not fini
fini = True
For i = 1 To Worksheets.Count - 1
n1 = Worksheets(i).Name
n2 = Worksheets(i + 1).Name
If Left(n1, 1) = "N" Then i1 = CLng(Mid(n1, 2)) Else i1 = 0
If Left(n2, 1) = "N" Then i2 = CLng(Mid(n2, 2)) Else i2 = 0
If i1 > i2 Then
Sheets(i + 1).Move Before:=Sheets(i)
fini = False
End If
Next i
Loop
Application.ScreenUpdating = False
End Sub
c'est grave docteur????
Merci de m'avoir trouvé non pas un truc mais une vrais macro digne de ce nom :)
Mais, ça me donne une erreure où c'est en gras.
Sub TriFeuilles()
' Rassemble les feuilles Nxx en fin de classeur avec tri numérique sur xx
' Les feuilles ne commençant pas par N restent dans leur ordre d'apparition, remises au début.
Dim i As Long, fini As Boolean
Dim n1 As String, n2 As String, i1 As Long, i2 As Long
Application.ScreenUpdating = True
fini = False
Do While Not fini
fini = True
For i = 1 To Worksheets.Count - 1
n1 = Worksheets(i).Name
n2 = Worksheets(i + 1).Name
If Left(n1, 1) = "N" Then i1 = CLng(Mid(n1, 2)) Else i1 = 0
If Left(n2, 1) = "N" Then i2 = CLng(Mid(n2, 2)) Else i2 = 0
If i1 > i2 Then
Sheets(i + 1).Move Before:=Sheets(i)
fini = False
End If
Next i
Loop
Application.ScreenUpdating = False
End Sub
c'est grave docteur????
c'est possible que les feuilles en NXX se range à partir de la 4ème position?
Si j'en demande trop n'hésite surtout à me le dire... tu sais avec les enfants, il faut savoir leur poser des limites
hihi
Si j'en demande trop n'hésite surtout à me le dire... tu sais avec les enfants, il faut savoir leur poser des limites
hihi
Bonjour,
Tu dois avor un nom de feuille qui commence par N et qui n'est pas suivi d'un nombre.
Si tu dois te servir souvent de la macro on completera, en attendant renomme cette feuille le temps de trier tes feuilles.
eric
Tu dois avor un nom de feuille qui commence par N et qui n'est pas suivi d'un nombre.
Si tu dois te servir souvent de la macro on completera, en attendant renomme cette feuille le temps de trier tes feuilles.
eric
tu veux que je t'envoi le fichier avec ci joint?
par contre, je peut pas laisser le nom de feuille de N en N00
sinon mon autre macro va plus marcher
par contre, je peut pas laisser le nom de feuille de N en N00
sinon mon autre macro va plus marcher
Pour tester tu l'aurais appelée L ça aurait été mieux... ;-)
Je n'ai pas bcp le temps de tester mais essaie en ajoutant And IsNumeric(Mid(n1, 2))
Et devant le 1er if il faudra sans doute ajouter :
eric
Je n'ai pas bcp le temps de tester mais essaie en ajoutant And IsNumeric(Mid(n1, 2))
If Left(n1, 1) = "N" And IsNumeric(Mid(n1, 2)) Then i1 = CLng(Mid(n1, 2)) Else i1 = 0et pareil sur la 2nde ligne de test avec n2
Et devant le 1er if il faudra sans doute ajouter :
i1=0:i2=0 on error resume nextS'il y a tjs des pb dépose un fichier allégé sur cijoint oui
eric
Voila le lien du fichier...
Ya encore un soucis, cette fois ca va bien de page en page mais ca ne me les tri pas...
http://www.cijoint.fr/cjlink.php?file=cj200807/cijvIlhgcQ.xls
Ya encore un soucis, cette fois ca va bien de page en page mais ca ne me les tri pas...
http://www.cijoint.fr/cjlink.php?file=cj200807/cijvIlhgcQ.xls
Ca marche très bien chez moi.
Je récapitule avec les dernières modif :
Je récapitule avec les dernières modif :
Sub TriFeuilles()
' Rassemble les feuilles Nxx en fin de classeur avec tri numérique sur xx
' Les feuilles ne commençant pas par N restent dans leur ordre d'apparition, remises au début.
Dim i As Long, fini As Boolean
Dim n1 As String, n2 As String, i1 As Long, i2 As Long
Dim actsheet As String
Application.ScreenUpdating = False
fini = False
Do While Not fini
fini = True
For i = 1 To Worksheets.Count - 1
n1 = Worksheets(i).Name
n2 = Worksheets(i + 1).Name
i1 = 0: i2 = 0
On Error Resume Next
If Left(n1, 1) = "N" And IsNumeric(Mid(n1, 2)) Then i1 = CLng(Mid(n1, 2)) Else i1 = 0
If Left(n2, 1) = "N" And IsNumeric(Mid(n2, 2)) Then i2 = CLng(Mid(n2, 2)) Else i2 = 0
If i1 > i2 Then
Sheets(i + 1).Move Before:=Sheets(i)
fini = False
End If
Next i
Loop
Application.ScreenUpdating = True
End Sub
la je ne comprend pas...
j'ai essayé d'exécuter la macro sur le gros fichier rien a faire, il bugg... je l'ai laissé travaillé 35min sans arriver à l'ouvrire après...
Et apres j'ai éssayé sur le fichier leger que je t'ai envoyer et la pas de soucis et en un rien de temps en plus...
le déséspoir me guette...
j'ai essayé d'exécuter la macro sur le gros fichier rien a faire, il bugg... je l'ai laissé travaillé 35min sans arriver à l'ouvrire après...
Et apres j'ai éssayé sur le fichier leger que je t'ai envoyer et la pas de soucis et en un rien de temps en plus...
le déséspoir me guette...
Pour savoir où en est la macro l'arreter temporairement avec Ctrl+Pause.
Dans VBA placer le curseur souris sur la variable i, attendre que sa valeur s'affiche.
Si i < au nombre de feuilles c'est qu'elle n'a pas fini...
Si il est plus grand c'est qu'il y a réelllement un bug
Relancer par F5, l'arreter à nouveau pour voir si i a évolué.
eric
Dans VBA placer le curseur souris sur la variable i, attendre que sa valeur s'affiche.
Si i < au nombre de feuilles c'est qu'elle n'a pas fini...
Si il est plus grand c'est qu'il y a réelllement un bug
Relancer par F5, l'arreter à nouveau pour voir si i a évolué.
eric