Petite modif VBA

Résolu
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
"

1 réponse

  1. Zoul67 Messages postés 2001 Statut Membre 149
     
    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+
    1
    1. JANGO5 Messages postés 98 Statut Membre 1
       
      Impeccable
      Merci ça marche bien , il y a juste un petit détail que je n'arrive pas à intégrer : le message d'erreur dans la macro précédente :
      If Len(numero) = 0 Then
      numero = cellule.Value
      ElseIf numero <> cellule.Value Then
      numero = "ERREUR:" & numero
      Exit For

      Merci encore
      0
    2. JANGO5 Messages postés 98 Statut Membre 1
       
      est-ce que c'est possible dem'integer le msg d'erreur svp
      je galère !!

      Merci bcp !!
      0
    3. Zoul67 Messages postés 2001 Statut Membre 149 > JANGO5 Messages postés 98 Statut Membre
       
      À quoi correspond une erreur ? Là,j'ai l'impression que tous les numéros doivent être identiques pour qu'il n'y ait pas d'erreur (sans Excel sous la main)
      0
    4. JANGO5 Messages postés 98 Statut Membre 1
       
      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) "
      0
    5. Zoul67 Messages postés 2001 Statut Membre 149
       
      Sans le fichier, je ne comprends pas.
      Tu peux le placer sur https://www.cjoint.com/ si tu veux.
      0