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

Comparaison donnée texte par rapport à une cellule en VB

  • Initiateur de la discussion Initiateur de la discussion The Yoann
  • 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 !

T

The Yoann

Guest
Bonjour,

J'ai importer des données d'un fichier texte en vba grâce à l'enregistreur de macro. Cette partie fonctionne. Par la suite, je transmet les données importées dans une variable données () qui est de type string. Cette partie fonctionne aussi. Mais lorsque je veux comparer des données qui sont en colonnes , aux données de ma variables données, même en étant écris exactement pareil, cela ne fonctionne pas (en faite je veux que lorsque la données de la variable données correspond à une données de mon fichier cela m'enregistre la ligne pour faire une modification des données de la variable donnée). Je ne sais pas si je suis assez clair. Je vous met le bout de code ( Nbl est égal aux nombre de lignes de ma variable données () ). C'est pas un beau code parce que je suis débutant, je sais que j'aurais pu être plus rapide. J'ai exécuté le code en mode débogage pour voir d'où venait le prob)

For m = 1 To Nbl
Ok2 = 0
n = 1
While Ok2 = 0
If Données(m, 1) = Sheets("Equivalent Noms").Cells(n, 1).Value Then
Ok2 = 1
Else
n = n + 1
End If
Wend
Données(m, 1) = Sheets("Equivalent Noms").Cells(n, 2).Value
Ok2 = 0
n = 1
Next m

Merci pour vos réponses.
 
Re : Comparaison donnée texte par rapport à une cellule en VB

Bonjour
si tu pouvais joindre un exemple du fichier cela serait plus simple, notamment sans doute pour te donner des astuces (Nbl automatique)
la gestion de l'incrément de n est dangereuse je pense car le seul arrêt est lié au "if", s'il n'y a pas de correspondance cela va bugger.

en attente de ton exemple
 
Re : Comparaison donnée texte par rapport à une cellule en VB

Bonjour,

Merci pour ta réponse.
Je te donne une partie de mon fichier. C'est un fichier d'entreprise, désolé je peux pas tout te donner.

Yoann
 

Pièces jointes

Re : Comparaison donnée texte par rapport à une cellule en VB

Re
dans le code ci-dessous regarde la façon de réupérer la dernière ligne ou dernière colonne

pour ta ligne à problème, il faut (n,2) car le nom est en colonne 2

j'ai mis les for 2 to ... parce que c'est plus lisible par rapport à tes feuilles, évidemment on modifie en conséquence les lignes qui suivent

je t'ai laissé la ligne msgbox en commentaire, lors d'un debug cette fonction permet l'affichage de valeur dans une boite de dialogue

J'ai peut-être fait des erreurs 🙁 je reste en veille mail de toute façon



Code:
    'traitement de mes données
    Nbl = Sheets("Importation").Range("A65536").End(xlUp).Row 'on remonte de la ligne 65536 et on regarde la première cellule non vide en A
    Nbc = Sheets("Importation").Range("IV1").End(xlToLeft).Column 'on part de la colonne IV et on revient vers la gauche sur la première cellule
    Nséjours = Sheets("Distancier Séjours-Regroupement").Range("A65536").End(xlUp).Row
    NséjoursSC = Sheets("Séjours sans courrier").Range("A65536").End(xlUp).Row
    
    ReDim Données(Nbl, Nbc + 1)
    
    For m = 2 To Nbl
        For n = 1 To Nbc
            Données(m - 1, n) = Sheets("Importation").Cells(m, n)
            'MsgBox Données(m - 1, n) 'pour test quand on valide la ligne, affiche la valeur
        Next n
    Next m
        
    For m = 2 To Nbl
            Ok1 = 0
            For n = 2 To Nséjours
                If Données(m - 1, 2) = Sheets("Distancier Séjours-Regroupement").Cells(n, 2).Value Then 'il est ici mon problème
                    Ok1 = 1
                    Exit For
                End If
            Next n
            For n = 1 To NséjoursSC
                If Données(m, 2) = Sheets("Séjours sans courrier").Cells(n, 2).Value Then
                    Ok1 = 1
                    Données(m, Nbc) = "1"
                    n = NséjoursSC
                End If
            Next n
            If Ok1 = 0 Then
                'Ouverture Userform : Demande d'ajout de séjour ou de séjour sans courrier
            End If
    Next m
 
Re : Comparaison donnée texte par rapport à une cellule en VB

Merci pour mon problème , je suis vraiment un idiot. Et merci pour Le début , je vais l'utiliser.

Yoann
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
911
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…