Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 Formatage cellule

YANOU38

XLDnaute Occasionnel
Bonjour,
Sur la feuil1, je voudrais garder dans tous les cas (malgré copier/coller ligne, insertion ligne...) ma cellule B3="1", la cellule B4="2", etc...
Pour l"instant je fais cela avec une formule, par exemple dans ma cellule B3 => "=LIGNE(A3)-2".
Cela ne suit pas lorsque je fais une insertion de ligne par exemple (logiquement je perds la formule).
De plus il faudrait que cela s'arrête automatiquement dès lors que ma ligne ne possède pas de bordure (dans mon exemple en cellule B16).
Même fonction sur Feuill2 mais la numérotation commence en B7.
Dans l'idéal il faudrait que ceci soit automatique, sans lancement manuel d'une macro.
Merci pour votre aide.
 

Pièces jointes

  • Essai nomenclature.xlsm
    179.7 KB · Affichages: 14

YANOU38

XLDnaute Occasionnel
Bonjour Jocelyn et merci pour ton aide.
Ta formule semble faire exactement la même chose que la mienne.
Je cherche plutôt quelque chose formaté systématiquement pour que je ne m'en soucis pas (ici il faut étirer vers le bas et s'arrêter quand la cellule est vide).
Je ne suis pas le seul à utiliser ce classeur, l'automatisme serait le bienvenu.
 

soan

XLDnaute Barbatruc
Inactif
Bonsoir YANOU38, Jocelyn,

je te propose le fichier ci-dessous.

tu es sur "Feuil1" ; fais Ctrl e ➯ numérotation de 1 à 13, de B3 à B15.

va sur "Feuil2" ; fais Ctrl e ➯ numérotation de 1 à 9, de B7 à B15.

comment ? tu avais écrit : « sans lancement manuel d'une macro » !

oui, je sais bien, mais devant, tu as mis : « Dans l'idéal il faudrait
que ceci soit automatique » ; et comme personne ne t'a donné de
réponse en VBA, je me suis dit : « mieux vaut ma solution VBA,
même si elle n'est pas automatique, qu'aucune réponse VBA ».




bien sûr, tu devras lancer la macro après avoir fait tes diverses
manips d'insertion ou suppression de lignes, puis refaire Ctrl e
après chaque autre changement du même style, pour mettre
à jour la numérotation.

petit détail : dans ton fichier initial, ton projet VBA est verrouillé
avec un mot de passe ! c'est peut-être aussi pour ça que tu
n'as pas eu d'autres réponses en VBA ?


VB:
Sub Numéroter()
  Dim chn$, lig&: chn = ActiveSheet.Name
  If chn = "Feuil1" Then lig = 3 Else _
    If chn = "Feuil2" Then lig = 7
  If lig = 0 Then Exit Sub
  Dim n&: Application.ScreenUpdating = 0
  Do
    n = n + 1: Cells(lig, 2) = n: lig = lig + 1
  Loop Until Cells(lig, 2).Borders(10).LineStyle = -4142
End Sub

soan
 

Pièces jointes

  • Essai nomenclature.xlsm
    150.4 KB · Affichages: 3

YANOU38

XLDnaute Occasionnel
Bonjour Soan et merci pour ton aide,
En PJ le fichier simplifié sans macro vérrouillée.
Pour l'instant valeurs des cellules B7 à B13"=LIGNE()-6"
Du coup, le but est de figer la valeur de ces cellules quoi qu'il arrive (copier/coller - insertion ligne...)
Exemple : insertion ligne entre ligne 7 et 8 => La nouvelle ligne créé (qui deviendra du coup la ligne 8) restera avec sa valeur "2".
Merci pour votre aide.
 

Pièces jointes

  • nom essai.xlsx
    13.4 KB · Affichages: 2

soan

XLDnaute Barbatruc
Inactif
Bonjour YANOU38, le fil,

ton fichier joint est non verrouillé, et sans macro
du tout vu que c'est un fichier .xlsx !

j'ai bien vu ce que tu as décrit, et j'ai bien compris
ce que tu demandes, mais désolé : je t'ai déjà dit
que je n'ai pas d'autre solution qu'une macro à
lancer manuellement : c'est ce que j'ai proposé
dans mon post #6.

j'ai rien d'autre à proposer, mais peut-être qu'un
autre intervenant aura une meilleure idée ?

bonne chance !


soan
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…