Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 sierreur et recherche

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 !

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,

Je butte sur un code que je n'arrive pas à faire malgré tous mes essais 😡
Ce que je voudrais faire :
si les 6 derniers chiffres de G2 = I2 alors copier I2 en J2
Pourriez-vous m'aider ?
Je "tourne" autour du bon code mais je n'y arrive pas.
J'en suis là :
VB:
Sub Macro1()
[a2].Select
    If Cells(ActiveCell.Row, 7).Value = "=IF(VALUE(RIGHT(Cells(ActiveCell.Row, 7),6)) = Cells(ActiveCell.Row, 9)" Then
    Cells(ActiveCell.Row, 10) = Cells(ActiveCell.Row, 9).Value
    End If
End Sub
Je joins un fichier test.
Avec mes remerciements,
Je vous souhaite une belle journée,
Amicalement,
lionel,
 

Pièces jointes

Bonjour,
Bonjour Sylvanu

Autre test
VB:
Sub Test()
  If Mid(Cells(2, 7).Value, 3, 6) = Cells(2, 9).Text Then Cells(2, 10).Value = Cells(2, 9).Value
  Range("A2").Select
End Sub
 
Bonjour Sylvanu, M12, le Forum,

Encore merci à vous 2 pour vos codes 🙂

J'ai choisi le code de Sylvanu qui semble me correspondre mieux à l'intégration dans les codes de mon fichier.
Toutefois, le code que j'en ai tiré avec 6 condition est long :
VB:
Sub Sylvanu()
efface
[a2].Select
    If Val(Right(Cells(ActiveCell.Row, 7), 6)) = Cells(ActiveCell.Row, 8) _
       Or Val(Right(Cells(ActiveCell.Row, 7), 7)) = Cells(ActiveCell.Row, 8) _
       Or Val(Right(Cells(ActiveCell.Row, 7), 8)) = Cells(ActiveCell.Row, 8) _
       Or Val(Right(Cells(ActiveCell.Row, 7), 9)) = Cells(ActiveCell.Row, 8) _
       Or Val(Right(Cells(ActiveCell.Row, 7), 10)) = Cells(ActiveCell.Row, 8) _
       Or Val(Right(Cells(ActiveCell.Row, 7), 11)) = Cells(ActiveCell.Row, 8) Then
       Cells(ActiveCell.Row, 11) = Cells(ActiveCell.Row, 8)
    Else
    Cells(ActiveCell.Row, 11) = "vous recherchez - de 6 chiffres ou n'existe pas !"
    End If
End Sub
Je voudrais le raccourcir mais je ne sais pas faire !
Est-ce possible ?
Merci à vous 🙂
lionel,
 
Dernière édition:
re
bonjour le fil
@arthour973
sinon tu met ça dans un module
VB:
Function fonction_perso(cel As Range, cel2 As Range)
    If cel = "" Or cel2 = "" Then
        fonction_perso = ""
    Else
        If Val(Right(cel.Text, 6)) = Val(cel2.Text) Then
            fonction_perso = Val(cel2.Text)
        Else
            fonction_perso = "non!"
        End If
    End If
End Function
et dans ta cellule en "J" tu met
=fonction_perso($G2;$I2)
et tu étends la formule jusqu'ou tu veux
tu a la gestion des résultat négatifs et des vides dans la fonction
sans prolonger la formule avec des SI ET OU
TU AURA DONC

soit le right 6
soit "non!"
soit rien si g ou i ou les deux sont vides
 
Dernière édition:
Bonjour Lionel, sylvanu, M12, patricktoulon,

Je ne vois vraiment pas pourquoi il faudrait du VBA puisque cette formule Excel va très bien :
Code:
=SI(ET(NBCAR(H2)>5;NBCAR(H2)<12;DROITE(G2;NBCAR(H2))=""&H2);H2;"n/a")
A+
 
Bonjour Gérard, sylvanu, M12, Patrick,

J'ai tout testé encore merci pour vos codes et formules 🙂
Ce qui me correspond le mieux est la formule : =SIERREUR(SI(CHERCHE(J4;G4);J4;FAUX);"")

Mais j'ai 2 soucis :
1 - J'ai besoin de chercher de G4 à H dernière cellule non vide et je n'arrive pas à modifier,
2 - de coder en VBA la formule modifiée.

Malgré mes essais, je n'y arrive pas 😡
Auriez-vous les solutions ?

Encore un grand merci à vous tous 🙂
Amicalement,
lionel,
 
Dernière édition:
Bonjour Gérard 🙂
C'est vrai ... mais avec tous les tests et essais ainsi que les codes et formules, j'en suis arrivé à mieux apprécier mon besoin.
et SIERREUR(SI(CHERCHE(J4;G4);J4;FAUX);"") permet de trouver la valeur cherchée que si elle est à droite dans la ou dans les cellules dans lesquelles se fait la recherche.

Encore merci pour les réponses déjà reçues,
Lionel 🙂
 
SIERREUR(SI(CHERCHE(J4;G4);J4;FAUX);"") permet de trouver la valeur cherchée que si elle est à droite dans la ou dans les cellules dans lesquelles se fait la recherche.
Où as-tu péché ça ??? Avec CHERCHE la valeur sera trouvée aussi si elle est à gauche ou au milieu !!!

Et pourquoi ne pas utiliser simplement =SI(ESTNUM(CHERCHE(J4;G4));J4;"")
 
- 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

Réponses
4
Affichages
590
Réponses
4
Affichages
580
Réponses
2
Affichages
427
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
370
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…