Petite modif VBA
Résolu
JANGO5
Messages postés
98
Statut
Membre
-
JANGO5 Messages postés 98 Statut Membre -
JANGO5 Messages postés 98 Statut Membre -
Bonjour,
J'aimerais modifier une Macro VBA , Celle-ci à partir de 8 colonne me prend le premier numéro trouvé dans ces 8 colonne et me l'affiche dans la 9ème.
Aujourd'hui j'ai besoin que la macro me prennent le numéro le plus présent dans les 8 colonne plutôt que le premier trouvé (on parle d'une ligne des 8 colonnes) .
Merci.
"
Public Function ChoixNumero(Liste As Range) As String
Dim cellule As Range
Dim numero As String
numero = ""
For Each cellule In Liste
If Not Application.IsNA(cellule.Value) Then
If Len(numero) = 0 Then
numero = cellule.Value
ElseIf numero <> cellule.Value Then
numero = "ERREUR:" & numero
Exit For
End If
End If
Next cellule
ChoixNumero = numero
End Function
"
J'aimerais modifier une Macro VBA , Celle-ci à partir de 8 colonne me prend le premier numéro trouvé dans ces 8 colonne et me l'affiche dans la 9ème.
Aujourd'hui j'ai besoin que la macro me prennent le numéro le plus présent dans les 8 colonne plutôt que le premier trouvé (on parle d'une ligne des 8 colonnes) .
Merci.
"
Public Function ChoixNumero(Liste As Range) As String
Dim cellule As Range
Dim numero As String
numero = ""
For Each cellule In Liste
If Not Application.IsNA(cellule.Value) Then
If Len(numero) = 0 Then
numero = cellule.Value
ElseIf numero <> cellule.Value Then
numero = "ERREUR:" & numero
Exit For
End If
End If
Next cellule
ChoixNumero = numero
End Function
"
1 réponse
-
Bonjour,
"Petite" modif... C'est l'essence de la macro qui est à changer.
Essaie ça :Public Function ChoixNumero(Liste As Range) As String
Dim cellule As Range
Dim numero As String
Dim a As Integer, a_max As Integer, val_max As String
a = 0
a_max = 0
numero = ""
For Each cellule In Liste
a = Application.WorksheetFunction.CountIf(Liste, cellule)
If a > a_max Then
a_max = a
val_max = cellule.Value
End If
Next cellule
ChoixNumero = val_max
End Function
A+-
-
-
-
Au fait des fois j'ai #N/A dans des cellules avec ou non un numéro dans le vas où je n'ai que des #N/A la macro retourne une valeur vide . dans le cas ou il ya un ou plusieurs numéros avec des #N/A la macro retourne ERREUR:numero comme dans la macro de départ comme ça dans une dixème colonne (finale) je met cette formule : " =SI(GAUCHE(P2;6)="ERREUR";STXT(P2;8;100);P2) "
-
Sans le fichier, je ne comprends pas.
Tu peux le placer sur https://www.cjoint.com/ si tu veux.
-