Icrementation automatique

jacky

XLDnaute Nouveau
Bonjour a tous,

J' aimerais incrementer automatiquement dans l' ordre les cellules Q11, t11, W11,Z11,AC11,AF11, AI11,AL11, AP11,AS11, AV11,AY11,BB11,BE11,BH11, Bk11,BO11,BR11,BU11,BX11,CA11,CD11,CG11 et CJ11 exemple ci dessous suivant la condition choisie(Ø,A,AA,A1,0,1) dans la combobox quand je click sur le button.

Voir fichier joint.

Merci pour votre aide
 

Pièces jointes

  • essai-ind.xlsm
    22.1 KB · Affichages: 52
  • essai-ind.xlsm
    22.1 KB · Affichages: 56
  • essai-ind.xlsm
    22.1 KB · Affichages: 52

hoerwind

XLDnaute Barbatruc
Re : Icrementation automatique

Bonjour,

Cela doit être faisable, une formule un peu longue (six conditions), mais une question au préalable :
Pourquoi fusionner des cellules, alors qu'il suffit d'élargir les colonnes ou de déplacer les valeurs d'une cellule vers la droite ?
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Icrementation automatique

Bonjour le fil, bonjour le forum,

Oui je plussoie Hoerwind, c'est chiant de bosser avec des cellules fusionnées... En piece jointe ton fichier modifié et commenté. J'ai rajouté un bouton pour lancer l'UserForm...
Le code :
Code:
Private Sub CommandButton1_Click()
Dim pl As Range 'déclare la variable pl (PLage)
Dim vi As Variant 'déclare la variable vi (Valeur Initiale)
Dim i As Byte 'déclare la variable i (incrément)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim pc As String 'déclare la variable pc (Premier Caractère)

vi = Me.ComboBox1.Value 'définit la valeur intiale
Unload Me 'vide et ferme l'Userform
'définit la palge pl
Set pl = Application.Union(Range("Q11"), Range("T11"), Range("W11"), Range("Z11"), Range("AC11"), Range("AF11"), Range("AI11"), Range("AL11"), Range("AP11"), Range("AS11"), _
    Range("AV11"), Range("AY11"), Range("BB11"), Range("BE11"), Range("BH11"), Range("BK11"), Range("BO11"), Range("BR11"), Range("BU11"), Range("BX11"), Range("CA11"), _
    Range("CD11"), Range("CG11"), Range("CJ11"))
    
pl.Value = "" 'efface les anciennes valeurs
Select Case vi 'agit en fonction de la valeur intiale
    Case "Ø", "A", "AA" 'cas "Ø", "A" et "AA"
        pl(1, 1).Value = IIf(vi = "Ø", "Ø", "") 'écrit dans la première cellle de la plage ("Ø", si vi = "Ø", sinon rien)
        pc = IIf(vi = "AA", "A", "") 'définit le premier caractère ("A" si vi = "AA", sinon rien)
        i = 1 'initialise l'incrément i
        For Each cel In pl 'boucle sur toutes les cellule de la plage pl
            If cel.Value <> "" Then GoTo suite1 'si la cellule n'est pas vide va à l'étiquette "suite1"
            cel.Value = pc & Split(Columns(i).Address(0, 0), ":", -1)(1) 'place dans cel le premier caractère pc et l'adresse (que la colonne) de i
            i = i + 1 'incrémente i
suite1:     'étiquette
        Next cel 'prochaine cellule de la boucle
        
    Case 0, 1, "A1" 'cas o, 1 et "A1"
        pl(1, 1).Value = IIf(vi = "A1", "A1", "") 'écrit dans la première cellle de la plage ("A1", si vi = "A1", sinon rien)
        pc = IIf(vi = "A1", "A", "") 'définit le premier caractère ("A" si vi = "A1", sinon rien)
        i = Right(vi, 1) 'définit la valriable i (le derneir caractère de vi)
        For Each cel In pl 'boucle sur toutes les cellule de la plage pl
            If cel.Value <> "" Then GoTo suite2 'si la cellule n'est pas vide va à l'étiquette "suite2"
            cel.Value = pc & i 'place dans cel le premier caractère pc et i
suite2:     'étiquette
            i = i + 1 'incrémente i
        Next cel 'prochaine cellule de la boucle
End Select 'fin de l'action en fonction de vi
End Sub
Le fichier :
 

Pièces jointes

  • jacky_v01.xls
    53.5 KB · Affichages: 43

JBOBO

XLDnaute Accro
Re : Icrementation automatique

Bonjour,

Un essai par formule en T11 à recopier vers la droite, en laissant vide les cellules AO11 et similaire :
Code:
=SI(NBCAR($Q11)>1;SI(ESTNUM(CNUM(DROITE($Q11;1)));GAUCHE($Q11;1)&CNUM(DROITE($Q11;1)+NBVAL($Q11:Q11));GAUCHE($Q11;1)&CAR(CODE(DROITE($Q11;1))+NBVAL($Q11:Q11)));SI(ESTNUM($Q11);$Q11+NBVAL($Q11:Q11);SI($Q11=CAR(65);CAR(CODE($Q11)+NBVAL($Q11:Q11));SI($Q11=CAR(216);CAR(CODE("A")+NBVAL($Q11:Q11)-1);""))))
 

jacky

XLDnaute Nouveau
Re : Icrementation automatique

re Bonjour,

Ok je te remerci c super.
J' ai posé un autre petit problème sur le forum ce matin pour une liste des onglets dans combobox avec condition d' affichage. Pourrais tu me dire si c'est realisable.
Merci
 

Statistiques des forums

Discussions
312 492
Messages
2 088 931
Membres
103 984
dernier inscrit
maliko67