Formule nombre de colonnes.

J

JJ1

Guest
Bonjour,

Suite à l'aide de JHA hier (que je remercie) j'ai pu concaténer mon fichier.

Le problème est qu'il n'est pas facile de travailler en texte.

je joins un bout d'exemple (en copiage/valeur) ou je recherche:
- le nombre de colonnes depuis une cellule contenant plus d'un nombre en BD7.
- le nombre de différents nombres dans cet espace. (pas simple car concaténé en texte avec séparateur " ") en BE7

pour info, la formule de concaténation de JHA dans le fichier réel est:

=SI(NB.SI(G$1:G$5;$A7)=1;$A7;"")&" "&SI(NB.SI(G$1:G$5;$B7)=1;$B7;"")&" "&SI(NB.SI(G$1:G$5;$C7)=1;$C7;"")&" "&SI(NB.SI(G$1:G$5;$D7)=1;$D7;"")&" "&SI(NB.SI(G$1:G$5;$E7)=1;$E7;" ")


Merci à vous.
Bonne soirée
 

Pièces jointes

  • Lp.xlsx
    12.1 KB · Affichages: 38
J

JJ1

Guest
Re : Formule nombre de colonnes.

Erreur dans mon énoncé:
- le nombre de colonnes NON VIDES depuis une cellule contenant plus d'un nombre en BD7.
LPbis corrigé joint.
Excusez-moi.
 

Pièces jointes

  • Lpbis.xlsx
    12.1 KB · Affichages: 41

david84

XLDnaute Barbatruc
Re : Formule nombre de colonnes.

Bonsoir,
pour le nombre de colonnes, une fonction personnalisée à tester :
Code:
Function NbCol(Plage As Range) As Long
Dim s, i&, j&, Nb&, Chaine As String
For i = 1 To Plage.Count
    Chaine = Trim(Chaine & Application.Trim(Plage(i)) & ";")
Next i
s = Split(Chaine, ";")
For i = LBound(s) To UBound(s)
    If InStr(1, s(i), " ") > 0 Then
        For j = i + 1 To Plage.Count
            If s(j) <> "" Then Nb = Nb + 1
        Next j
    End If
Next i
NbCol = Nb
End Function
Code:
=NbCol(AJ7:BC7)
ramène 8

Pour le nombre de nombres différents, j'ai une solution mais c'est du RegExp...si personne ne te donne de solution satisfaisante, je la posterai.
A+
 
Dernière édition:
J

JJ1

Guest
Re : Formule nombre de colonnes.

Bonsoir David,
Merci pour ta fonction.
Je l'ai installée mais elle me donne des résultats faux (200 colonnes au lieu de 3)

J'ai l'impression qu'elle ne tient pas compte du fait que chaque cellule contient la formule de concaténation de JHA (qui n'est pas dans mon exemple suite au copiage/valeur) et donc les cellules ne sont pas "entièrement" vides?
Les cellules contiennent donc 1 à 5 nombres séparés par " " ou la formule seule sans résultat.


Merci

Bonne soirée
 

david84

XLDnaute Barbatruc
Re : Formule nombre de colonnes.

Re
Tu n'as placé qu'un exemple sur ton fichier. Je n'ai donc pu tester que sur celui-ci...
peut-être en remplaçant
Code:
If s(j) <>"" Then Nb = Nb + 1
par
Code:
If Len(s(j)) > 0 Then Nb = Nb + 1
A+
 
Dernière édition:

david84

XLDnaute Barbatruc
Re : Formule nombre de colonnes.

Re
Concernant ta 1ère question, tu peux utiliser in dictionnaire :
Code:
Function Nombre_diff(Plage As Range) As Long
Dim dico As Object, Chaine As String, i As Long, s
For i = 1 To Plage.Count
    Chaine = Chaine & Plage(i) & " "
Next i
Chaine = Application.WorksheetFunction.Trim(Chaine)
s = Split(Chaine, " ")
Set dico = CreateObject("scripting.dictionary")
For i = LBound(s) To UBound(s)
    dico(s(i)) = dico(s(i))
Next i
Nombre_diff = dico.Count
End Function
Code:
=Nombre_diff(AJ7:BC7)
ramène 5 sur ton seul exemple fourni.
A+
 

Discussions similaires

Réponses
5
Affichages
186

Statistiques des forums

Discussions
312 489
Messages
2 088 853
Membres
103 975
dernier inscrit
denry