Fonction ou macro copie de feuille en feuille

Résolu/Fermé
JOLARITALE Messages postés 144 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 10 décembre 2014 - 30 juil. 2008 à 08:35
JOLARITALE Messages postés 144 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 10 décembre 2014 - 31 juil. 2008 à 15:46
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


A voir également:

24 réponses

zebulon2503 Messages postés 1228 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 11 février 2016 110
30 juil. 2008 à 10:04
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 ?
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 213
30 juil. 2008 à 10:09
Bonjour,

en B2:
=INDIRECT(A2 & "!C5")
en C2:
=INDIRECT(A2 & "!C6")

eric
0
zebulon2503 Messages postés 1228 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 11 février 2016 110
30 juil. 2008 à 10:11
B2 touche...
C2 coule...
Pas mal :D
0
JOLARITALE Messages postés 144 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 10 décembre 2014 4
30 juil. 2008 à 13:37
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
0
JOLARITALE Messages postés 144 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 10 décembre 2014 4
30 juil. 2008 à 13:38
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
0
zebulon2503 Messages postés 1228 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 11 février 2016 110
30 juil. 2008 à 15:02
Ca se complique si tu nas pas les numeros qui se suivent....
Tas aucune regle entre les numeros ? Cest pas une suite logique ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 213
30 juil. 2008 à 14:26
ccm recommence à merdouiller...
Je disais donc :
ça tombe bien, il n'y a rien à comprendre... juste la formule à recopier
eric
0
JOLARITALE Messages postés 144 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 10 décembre 2014 4
30 juil. 2008 à 16:39
Wouahou c'est magique lol
je ne comprend pas, mais alors pas du tout!!!

mais c'est génial ;)
0
JOLARITALE Messages postés 144 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 10 décembre 2014 4
30 juil. 2008 à 16:41
Wouhaou!!!
c'est magique!!
je ne comprend rien, mais alors rien du tout!!!

mais c'est géniale :)

Merci :)
0
JOLARITALE Messages postés 144 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 10 décembre 2014 4
30 juil. 2008 à 16:42
et pendant qu'on y est y'aurais ps un truc qui me permetrait de ranger mes feuille par ordre croissant?

hihi
0
JOLARITALE Messages postés 144 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 10 décembre 2014 4
30 juil. 2008 à 16:51
Wouhaou!!!
c'est magique!!
je ne comprend rien, mais alors rien du tout!!!

mais c'est géniale :)

Merci :)
0
JOLARITALE Messages postés 144 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 10 décembre 2014 4
30 juil. 2008 à 16:52
oups... CCm merdouille un peu en effet... désolé pour le multipostage.... :$
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 213
30 juil. 2008 à 23:23
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
0
JOLARITALE Messages postés 144 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 10 décembre 2014 4
31 juil. 2008 à 08:14
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????
0
JOLARITALE Messages postés 144 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 10 décembre 2014 4
31 juil. 2008 à 08:18
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
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 213
31 juil. 2008 à 08:20
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
0
JOLARITALE Messages postés 144 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 10 décembre 2014 4
31 juil. 2008 à 09:09
j'ai renommé feuille N en N00 mais ça me donne toujours le meme message d'erreure
0
JOLARITALE Messages postés 144 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 10 décembre 2014 4
31 juil. 2008 à 09:13
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
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 213
31 juil. 2008 à 10:45
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
0
JOLARITALE Messages postés 144 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 10 décembre 2014 4
31 juil. 2008 à 11:45
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
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 213
31 juil. 2008 à 12:24
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
0
JOLARITALE Messages postés 144 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 10 décembre 2014 4
31 juil. 2008 à 13:48
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...
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 213
31 juil. 2008 à 14:31
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
0
JOLARITALE Messages postés 144 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 10 décembre 2014 4
31 juil. 2008 à 15:09
c'est normal que les valeur de I ne se suivent pas?

j'ai eu 131 puis 124 et après 135.
0