Recherche code Numéro Automatique dans une colonne

Résolu
Bonjour!

Sur une feuille Excel 2007, je recherche une formule en VBA pour le problème suivant:
Colonnes qui peuvent avoir jusqu'à 64 noms:
(C, H, M, R, W)

Les colonnes de gauche sont les numéros automatiques qui suivent les colonnes des noms.
(B, G, L, Q, V)

Chaque colonne débute à la troisième ligne.

Quel est le code VBA pour ajouter des numéros automatiques en ordre croissant pour les cellules remplies seulement?

Quelqu'un aurait une solution?

Merci de votre aide!

11 réponses

  1. Salut Eric!

    Ton code fonctionne parfaitement! C'est en plein ce que je recherchais.

    Pour le reste, je m'en occupe!

    Merci beaucoup!
    0
    1. Contributeur
      Bonjour,

      Ton code amélioré :
      Sub NumAuto()
          Dim lig As Long, col As Long
          Application.ScreenUpdating = False
          For col = 2 To 22 Step 5
              Cells(4, col).Resize(64).ClearContents
              For lig = 4 To 67
                  If Cells(lig, col + 1) <> "" Then Cells(lig, col) = lig - 3 Else Exit For
              Next lig
          Next col
      End Sub

      Pour le reste c'est trop flou..

      eric

      PS: enregistre ton fichier en .xlsm

      En essayant continuellement, on finit par réussir.
      Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
      En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
      0
      1. En cliquant sur le bouton "Numéro Automatique", vous verrez le travail de la macro!
        0
        1. https://www.cjoint.com/?DFzfcC3UfzV

          Bonjour!

          Je travaille sur le dossier à temps perdu. J'y ai réfléchi! J'ai trouvé une solution. J'ai joint une copie de mon fichier. Il me reste à améliorer la boucle du code. Aussi, je veux inclure un code permettant les modifications et la mise à jour de la feuille advenant une annulation ou un rajout d'un joueur ou une équipe. Les informations des autres colonnes proviennent d'une autre feuille via VBA.

          Je travaille à temps plein dans le monde du sport et ce dossier est extrêmement important pour notre structure organisationnelle. Il va nous sauver un temps très précieux.

          Je ne suis pas un habitué du logiciel Excel. C'est pourquoi, Je fais appel à votre aide pour finaliser ce dossier!
          0
          1. Contributeur
            Bonjour,

            Je suis de l'avis de raymond. Aucun intérêt à faire ça en vba. J'enlève son -1
            Sauf si c'est pour apprendre, dans ce cas il faut que tu mettes les mains dans le cambouis et que tu réfléchisses un peu.

            eric
            0
            1. Je travaille sur 2 feuilles différentes dans un même classeur.

              1) Entrée des inscriptions pour la compétition. Dans cette feuille, nous avons les informations suivantes: Nom, Club, Sexe, Épreuve Catégorie Simple, Épreuve Catégorie Double, Nom partenaire Double, Club Partenaire Double, Épreuve Catégorie Mixte, Nom Partenaire Mixte, Club Partenaire Mixte.

              2) Classement des joueurs et des équipes pour les 5 épreuves (Test1)

              Par le formulaire d'inscription, les joueurs ou équipes sont classés dans les différentes épreuves. Toutes ces informations sont envoyées à la feuille (Test1) via VBA. Tu comprendras que si j'inclus des formules dans les cellules, elles s'effaceront lorsque je vais cliquer sur les différents boutons. Il manque le dernier code pour compléter ma feuille. (Nombre de joueurs ou équipes par épreuve de 1 à 64 joueurs).

              J'ai trouvé un code semblable à ce que je recherche. Par contre, il affiche des dates alors que je recherche des chiffres sans décimales.

              Private Sub Worksheet_Change(ByVal Target As Range)
              If Target.Column = 2 Then
              If IsEmpty(Target.Offset(0, -1)) Then
              With Sheets("CODES")
              With .Cells(1, 2)
              If .Value <> Date Then
              .Value = Date
              .Offset(0, -1).Value = 0
              End If
              End With
              With .Cells(1, 1)
              .Value = .Value + 1
              Target.Offset(0, -1).Value = Format(.Offset(0, 1).Value, "yyyyMMdd", vbMonday) & Format(.Value, "00")
              End With
              End With
              End If
              End If
              End Sub

              Quelqu'un peut m'aider à compléter le code?
              0
              1. Contributeur
                Inutile de se farcir du VBA : une fois le tableau préparé, tu l'enregistres.
                Pour chaque nouvelle compétition, tu fais une copie de ce fichier vierge et tu mets les nouveaux noms et clubs, puis tu enregistres sous un nouveau nom.

                Pour ajouter un N° en B67, tu y mets la formule
                =SI(C67="";"";B66+1) à recopier vers le bas ...

                C'est bien, la retraite ! Surtout aux Antilles ... :-)
                ? Raymond (INSA, AFPA, CF/R)?
                0
                1. Les colonnes de chiffres en rouges doivent s'insérer automatiquement si la cellule de droite contient un nom ou une équipe. La liste mentionne 64 noms ou équipes par épreuve. Souvent, le maximum de 64 joueurs ou équipes n'est pas atteint. Le dernier chiffre doit représenter le nombre de joueurs ou équipes inscrits dans chaque épreuve.
                  0
                  1. Contributeur
                    Et tu tiens à faire cela en VBA ?
                    0
                    1. Contributeur
                      Bonjour,

                      tu ne veux pas déposer un classeur exemple ?
                      Déposer le fichier xls sur cjoint.com et coller ici le lien fourni.

                      eric
                      0