RESOLU] VBA - probléme sur valeur

  • Initiateur de la discussion Initiateur de la discussion greg63
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

greg63

XLDnaute Junior
BOnjour à tous,

Je viens à vous car j'ai un problème.

Je souhaite coté de 1 à 10 mais en retirant le 5.

En utilisant une macro les valeurs obtenues dans les feuilles A1 et A1(2) viennent se mettre dans la feuille 1.

Par contre la cotation issue de la feuilles en A1 et A1(2) s'effectue sur les valeurs de 1 à 10 mais exclue le 5.

Le probléme c'est lorsque je place une crois dans le 6 la valeur obtenue et 5 pour 7 la valeur est 6 et ainsi de suite jusqu'a 10.

Or Lorsque nous cotons 4 la valeur obtenu est bien 4.

Pourriez vous me modifier une partie du code pour que je tombe juste

La formule est lasuivante :

Private Function Cote(pl As Range) As String
For i = 0 To 10
If pl.Offset(0, i) <> "" Then Exit For
Next i
i = i + 1
If i = 11 Then Cote = "" Else Cote = i
End Function

Je vous joints le fichier
.Merci par avance de votre aide
 

Pièces jointes

Re : VBA - probléme sur valeur

POur cette partie je me suis fait aider d'une personne de ce site ^^ .

Je ne sais pas en faite. SI tu regardes mes feuilles la cotation va de 1 à 10. Donc logiquement le 0 est exclue.

Mais pas le 5. Aurais tu la solution . Parceque moi je séche dessus 🙄
 
Re : VBA - probléme sur valeur

en faite regarde l'onglet A 1 ou A1(2) . Il représente une cotation de 1 à 10. Mais si tu regarde attentivement il n'y a pas la valeur 5. Pourquoi ce choix car je ne veux pas que les personnes qui vont coter se cache derriere cette valeur centrale . C'est tout . Alors il est vrai que si on pouvait sortir cette sataner valeur de ma formule je serais heureux .
 
Re : VBA - probléme sur valeur

Bonjour greg63, eddy51,

Essaye ça :
VB:
Private Function Cote(pl As Range) As String
    Dim i As Integer
    For i = 0 To 9
        If pl.Offset(0, i) <> "" Then
            If i >= 4 And i < 9 Then
                i = i + 2
                Cote = i
            ElseIf i = 9 Then
                Cote = ""
            Else
                i = i + 1
                Cote = i
            End If
            Exit For
        End If
    Next i
End Function

Bonne journée,
 
Re : VBA - probléme sur valeur

oui mais il dit que quand il tape 6 sa lui met 5 , il faut prendre en compte que le tableau commence a 0
case 0 =0 1=1 2=2 3=3 4=4 5=5 6=6 7=7 8=8 9=9 10=10
si on retire le 5 comme il a fait normal d'obtenir
0=0 1=1 2=2 3=3 4=4 5=6 6=7 7=8 8=9 9=10 10=RIEN
 
Re : VBA - probléme sur valeur

ça marche niquel merci bien. Merci à vous 2 de vous pencher sur mon problème.

Juste une dernière chose J'aimerais avoir le sigle NE qui apparait dans la feuille (de synthése des résultat) lorsqu'on coche la colonne NE dans les feuilles A1 A1(2) A1(n) ...
 
Re : VBA - probléme sur valeur

Re,

VB:
Private Function Cote(pl As Range) As String
    Dim i As Integer
    For i = 0 To 9
        If pl.Offset(0, i) <> "" Then
            If i >= 4 And i < 9 Then
                i = i + 2
                Cote = i
            ElseIf i = 9 Then
                Cote = "NE"
            Else
                i = i + 1
                Cote = i
            End If
            Exit For
        End If
    Next i
End Function
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
805
Retour