Numérotation automatique selon condition

vserrano

XLDnaute Junior
Bojou à tous,

Voila je qu'en colonne m16 donne nu numero si la celulle j16 est rempli et ainsi de suite.

Il se peu que sur la ligne 21 il me manque des elements pour la saisie dans le logiciel, ce n est pas grave je passe a la 22 je mets mon numero de panier et dans la colonne M22 j'aurai voulu qu il mettre 6 et non 1

Merci a vous tous
 

Pièces jointes

  • Suivi commandes GMT 2018.xlsm
    26.3 KB · Affichages: 32

vserrano

XLDnaute Junior
Bonjour,

Merci pour votre reponse, mais j ai un souci c'est que si je mets un autre numero de panier le M22 qui etait au numéro 6 passera en 7; hors je veux que la ligne 22 garde son numero 6 et que si je rajoute un panier a la ligne 21 celui ci passe en 7 etc

merci

bien a vous
 

vserrano

XLDnaute Junior
Bonjour et merci de votre aide, mais cela ne marche pas :-(

nom / panier / numero
dupont /j'ai tous les elements pour les enregistrer le 8/1 / il sera le numéro 1
mercier /j'ai tous les elements pour les enregistrer le 12/1 / il sera le numéro 6
lemaire /j'ai tous les elements pour les enregistrer le 8/1 / il sera le numéro 2
marie /j'ai tous les elements pour les enregistrer le 10/1 / il sera le numéro 4
suchet/ j'ai tous les elements pour les enregistrer le 9/1 / il sera le numéro 3
dumont /j'ai tous les elements pour les enregistrer le 11/1 / il sera le numéro 5

les / sont les colonnes

merci à vous tous pour cette aide
 

Rouge

XLDnaute Impliqué
Bonjour,
Le plus simple est de passer par une macro.
Copier ceci dans le module de la feuille
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value <> "" And Target.Column = 10 And Target.Row > 15 And Target.Row < 39 Then
Target.Offset(0, 3).Value = Application.WorksheetFunction.Max(Range("M16:M38")) + 1
End If
End Sub
Atester
Cdlt
 

vserrano

XLDnaute Junior
Bonjour,
Je pense que je vais laisser tomber cette formule,car je voudrai eviter de mettre trop de macro, car je pars dans 1 mois!!!
Cependant, j'ai une autre question.

En MFC

SI D16 est remplie, mais que G16 ou H16 ou I16 sont vide alors mettre une couleur.

Merci à vous
 

vserrano

XLDnaute Junior
Bonjour,
Le plus simple est de passer par une macro.
Copier ceci dans le module de la feuille
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value <> "" And Target.Column = 10 And Target.Row > 15 And Target.Row < 39 Then
Target.Offset(0, 3).Value = Application.WorksheetFunction.Max(Range("M16:M38")) + 1
End If
End Sub
Atester
Cdlt


Effectivement ca marche super bien ;-)
 

Rouge

XLDnaute Impliqué
Bonsoir,
Remplacez la macro: "Private Sub Worksheet_Change(ByVal Target As Range)" dans le module de la feuille1(NOUVEAU MODELE) par celle-ci:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Value <> "" And Target.Column = 10 And Target.Row > 15 And Target.Row < 39 Then
Target.Offset(0, 3).Value = Application.WorksheetFunction.Max(Range("M16:M38")) + 1
ElseIf Target.Value = "" Then Target.Offset(0, 3).Value = ""
End If
Application.EnableEvents = True
End Sub
Lorsque vous effacez le panier , ça efface également le numéro.
Cdlt
 

vserrano

XLDnaute Junior
Bonjour Rouge,

je viens de la tester quand j'efface il me dit qu'il y a un beug encore et en plus ma ligne qui doit etre en surbrillance ne fonctionne plus!!!

Je vais remettre l'ancienne.

petit question est ce que je dois mettre votre code dans fuil 1 NOUVEAU MODELE ou dans module 1 ou dans thisworkbook ?

Private Sub Worksheet_Change(ByVal Target As Range) ' Dans la colonne de M16 à M30 il va mettre un n°automatique par ordre d'enregistrement de panier
Application.EnableEvents = False
If Target.Value <> "" And Target.Column = 10 And Target.Row > 15 And Target.Row < 39 Then
Target.Offset(0, 3).Value = Application.WorksheetFunction.Max(Range("M16:M30")) + 1
ElseIf Target.Value = "" Then Target.Offset(0, 3).Value = ""
End If
Application.EnableEvents = True
End Sub




Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'Dans la selection du tableau il va mettre en surbrillance la ligne
Set champ = Range("A16:M30")
If Not Intersect(champ, Target) Is Nothing And Target.Count = 1 Then
champ.Interior.ColorIndex = xlNone
col1 = champ.Column
col2 = col1 + champ.Columns.Count - 1
Range(Cells(Target.Row, col1), Cells(Target.Row, col2)).Interior.ColorIndex = 37
End If
End Sub
 

Rouge

XLDnaute Impliqué
Bonsoir,
petit question est ce que je dois mettre votre code dans fuil 1 NOUVEAU MODELE ou dans module 1 ou dans thisworkbook ? Si vous relisez mon post précédent j'avais bien écrit "dans le module de la feuille1(NOUVEAU MODELE)"
Pour le reste je ne comprends pas puisque tout semble fonctionner normalement chez moi. Pourriez-vous remettre votre fichier à disposition afin que je puisse voir ce qui ne va pas?
Cdlt
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote