cs_cobra2008
Messages postés25Date d'inscriptionmardi 24 juillet 2007StatutMembreDernière intervention27 août 2010
-
16 sept. 2008 à 09:39
cs_cobra2008
Messages postés25Date d'inscriptionmardi 24 juillet 2007StatutMembreDernière intervention27 août 2010
-
16 sept. 2008 à 11:46
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)
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 16 sept. 2008 à 11:13
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]
cs_cobra2008
Messages postés25Date d'inscriptionmardi 24 juillet 2007StatutMembreDernière intervention27 août 2010 16 sept. 2008 à 11:46
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