Mettre un numéro automatique dans une cellule [Résolu]

Signaler
Messages postés
25
Date d'inscription
mardi 24 juillet 2007
Statut
Membre
Dernière intervention
27 août 2010
-
Messages postés
25
Date d'inscription
mardi 24 juillet 2007
Statut
Membre
Dernière intervention
27 août 2010
-
Bonjour
Je souhaite sous Excel (version 2003) mettre un numéro automatique dans la première colonne d'un tableau. Ce numéro s'affiche si la colonne juste à droite est"non vide". Ce numéro prend alors la valeur de la cellule précedente +1.
j'ai fais cet numérotation automatique directement avec les formules Excel :" =SI(ESTVIDE(Bn);"";(An-1)+1)". Et je déploie cette formule sur toutes les lignes de l'onglet (la première ligne du tableau ayant un traitement spécial).
J'ai 3 onglets à traiter de la même façons. Cela fonctionne très bien mais le fichier fait 10Mo et il n'est pas encore remplit !!!!

Existe t'il un moyen de faire la même chose dans une macro (Visual basic 6.3) (qui numérote automatiquement les cases quand les cases voisines ne sont pas vide) afin de minimiser la taille du fichier ? et si oui, quel est le type de fonctions à utiliser (je suis encore débutant en programmation VBA sous Excel)

Merci d'avance pour vos réponses
Loic

2 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
56
Salut,
Un petit truc quand doit s'arreter la macro?

Quel numero doit prendre A dans le cas suivant (exemple)
A10 4  B10 TototA11 "" B11 VideA12 ???? B12 Totot

Sinon regarde cette macro

Dim Ws As Worksheet

   'pour chaque feuille de du classeur courant
   For Each Ws In ActiveWorkbook.Worksheets
       
       'Pour les lignes 2 à 500
       For i = 2 To 500
           'On selectione Ai de la feuille
           Ws.Range("A" & CStr(i)).Select
           'si la colonne B ,n'est pas
           If Not IsEmpty(ActiveCell.Offset(, 1)) Then
               'alors on recupère la valeur de An-1 et on lui ajoute 1
               ActiveCell.Value = ActiveCell.Offset(-1).Value + 1
           End If
       Next
   Next , ----
[../code.aspx?ID=41455 By Renfield]

@+: Ju£i€n
Pensez: Réponse acceptée
Messages postés
25
Date d'inscription
mardi 24 juillet 2007
Statut
Membre
Dernière intervention
27 août 2010

Bonjour,
Pour ton exemple:
A10 4  B10 TototA11 "" B11 VideA12 ???? B12 Totot

ce cas ne doit pas se produire (on rempli les lignes du tableau les unes à la suite des autres) et la colonne B ne peut pas être vide si l'on commence à remplir la ligne.
Si ce cas apparait, on affiche rien ou erreur.

Et pour répondre à ta question :
"Un petit truc quand doit s'arrêter la macro?"
elle ne s'arrête pas, en faite elle doit mettre à jour la colonne A en temps réel en fonction de la colonne B (comme le ferais la formule Excel)

Je ne sais pas si cela est possible ou non.
Si cela n'est pas faisable ou trop lourd, je passerais par une solution similaire à ce que tu m'a fourni

merci