Chiffres nécessaires

Abou Dinblan

XLDnaute Junior
Bonjour,

Auriez-vous le temps et l'envie de m'aider à solutionner ce cas?

merci
 

Pièces jointes

  • chiff.xlsx
    8.6 KB · Affichages: 36

Staple1600

XLDnaute Barbatruc
Bonjour à tous

Abou Dinblan
Tu peux développer un peu plus ta question, stp?
Dans le corps de ton message bien sur et pas dans ton fichier joint
(ce qui oblige à le télécharger pour s'apercevoir si la question posée nous intéresse ou pas )

NB: personnellement, je préfère le boudin antillais
 

Hieu

XLDnaute Impliqué
Salut,

Voici une macro, pour retrouver ton besoin pour la première ligne :
VB:
Sub mlkn()
Dim t(9) As Boolean

For Each r In Range("a1:g1")
    t(r Mod 10) = True
    t(Int(r / 10)) = True
Next r

For i = 0 To 9
If t(i) = True Then
    Range("m1").Offset(0, k) = i
    k = k + 1
End If
Next i

End Sub

++

edit : modifié, car mauvais fichier
 

Pièces jointes

  • chiff_v0.xlsm
    14.6 KB · Affichages: 24
Dernière édition:

Hieu

XLDnaute Impliqué
Et voilà, comment boucler, sur les lignes :
VB:
Sub principal()
For i = 0 To 1
    Call mlkn(i)
Next i
End Sub

Sub mlkn(lig)
Dim t(9) As Boolean

For Each r In Range("a1:g1").Offset(lig, 0)
    t(r Mod 10) = True
    t(Int(r / 10)) = True
Next r

For i = 0 To 9
If t(i) = True Then
    Range("m1").Offset(lig, k) = i
    k = k + 1
End If
Next i
End Sub
++
 

Pièces jointes

  • chiff_v1.xlsm
    17.8 KB · Affichages: 39

Hieu

XLDnaute Impliqué
Re Abou,

Avec quelques modifs sur la subroutine mlkn, pour :
- prendre en compte les cellules vides
- les nombres inférieurs à 10
VB:
Sub mlkn(lig)
Dim t(9) As Boolean

For Each r In Range("a1:g1").Offset(lig, 0)
If IsEmpty(r) = False Then
    t(r Mod 10) = True
    If Int(r / 10) <> 0 Then t(Int(r / 10)) = True
End If
Next r

For i = 0 To 9
If t(i) = True Then
    Range("m1").Offset(lig, k) = i
    k = k + 1
End If
Next i
End Sub

Normalement, ça marche
++
 

Pièces jointes

  • chiff_v2.xlsm
    18.8 KB · Affichages: 35

R@chid

XLDnaute Barbatruc
Bonsoir @ tous,
avec une formule matricielle, en M1 :
VB:
=SIERREUR(PETITE.VALEUR(SI(ESTNUM(CHERCHE(LIGNE($1:$10)-1;$A1&$B1&$C1&$D1&$E1&$F1&$G1))*(NB.SI($L1:L1;LIGNE($1:$10)-1)=0);LIGNE($1:$10)-1);1);"")
@ valider par Ctrl+Shift+Enter
@ tirer vers la droite puis vers le bas


@ + +
 

Discussions similaires

  • Question
Microsoft 365 Analyse
Réponses
1
Affichages
101

Statistiques des forums

Discussions
312 345
Messages
2 087 487
Membres
103 557
dernier inscrit
gerard.messerlin68@orange