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
Configuration: Windows XP Internet Explorer 6.0
24 réponses
- 1
- 2
Suivant
-
Salut
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,
en B2:
=INDIRECT(A2 & "!C5")
en C2:
=INDIRECT(A2 & "!C6")
eric -
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 -
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 -
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 -
Wouahou c'est magique lol
je ne comprend pas, mais alors pas du tout!!!
mais c'est génial ;) -
Wouhaou!!!
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 -
Wouhaou!!!
c'est magique!!
je ne comprend rien, mais alors rien du tout!!!
mais c'est géniale :)
Merci :) -
oups... CCm merdouille un peu en effet... désolé pour le multipostage.... :$
-
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 :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???? -
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 -
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 -
j'ai renommé feuille N en N00 mais ça me donne toujours le meme message d'erreure
-
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-
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))If Left(n1, 1) = "N" And IsNumeric(Mid(n1, 2)) Then i1 = CLng(Mid(n1, 2)) Else i1 = 0
et 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 next
S'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-
Ca marche très bien chez moi.
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... -
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 -
c'est normal que les valeur de I ne se suivent pas?
j'ai eu 131 puis 124 et après 135.
- 1
- 2
Suivant