Fonction ou macro copie de feuille en feuille

Résolu
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

Configuration: Windows XP
Internet Explorer 6.0

24 réponses

  • 1
  • 2
  1. zebulon2503 Messages postés 1229 Date d'inscription   Statut Membre Dernière intervention   110
     
    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
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

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

    eric
    0
    1. zebulon2503 Messages postés 1229 Date d'inscription   Statut Membre Dernière intervention   110
       
      B2 touche...
      C2 coule...
      Pas mal :D
      0
  3. JOLARITALE Messages postés 149 Statut Membre 4
     
    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
  4. JOLARITALE Messages postés 149 Statut Membre 4
     
    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
    1. zebulon2503 Messages postés 1229 Date d'inscription   Statut Membre Dernière intervention   110
       
      Ca se complique si tu nas pas les numeros qui se suivent....
      Tas aucune regle entre les numeros ? Cest pas une suite logique ?
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    ccm recommence à merdouiller...
    Je disais donc :
    ça tombe bien, il n'y a rien à comprendre... juste la formule à recopier
    eric
    0
  7. JOLARITALE Messages postés 149 Statut Membre 4
     
    Wouahou c'est magique lol
    je ne comprend pas, mais alors pas du tout!!!

    mais c'est génial ;)
    0
  8. JOLARITALE Messages postés 149 Statut Membre 4
     
    Wouhaou!!!
    c'est magique!!
    je ne comprend rien, mais alors rien du tout!!!

    mais c'est géniale :)

    Merci :)
    0
  9. JOLARITALE Messages postés 149 Statut Membre 4
     
    et pendant qu'on y est y'aurais ps un truc qui me permetrait de ranger mes feuille par ordre croissant?

    hihi
    0
  10. JOLARITALE Messages postés 149 Statut Membre 4
     
    Wouhaou!!!
    c'est magique!!
    je ne comprend rien, mais alors rien du tout!!!

    mais c'est géniale :)

    Merci :)
    0
  11. JOLARITALE Messages postés 149 Statut Membre 4
     
    oups... CCm merdouille un peu en effet... désolé pour le multipostage.... :$
    0
  12. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  13. JOLARITALE Messages postés 149 Statut Membre 4
     
    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
  14. JOLARITALE Messages postés 149 Statut Membre 4
     
    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
  15. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  16. JOLARITALE Messages postés 149 Statut Membre 4
     
    j'ai renommé feuille N en N00 mais ça me donne toujours le meme message d'erreure
    0
  17. JOLARITALE Messages postés 149 Statut Membre 4
     
    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
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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
  18. JOLARITALE Messages postés 149 Statut Membre 4
     
    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
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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
  19. JOLARITALE Messages postés 149 Statut Membre 4
     
    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
  20. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  21. JOLARITALE Messages postés 149 Statut Membre 4
     
    c'est normal que les valeur de I ne se suivent pas?

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