Comparer des cellules textes en VBA

Fermé
PierreStL - 22 janv. 2017 à 22:58
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 23 janv. 2017 à 09:21
Bonjour, je suis novice dans VBA et je ne comprends pas pourquoi ce If ne marche pas...il faut savoir que les cellules que je compare sont des noms d'entreprises (textes)...merci de votre collaboration....Pierre

For no_ligne_n1 = 2 To 1000

If Feuil1.Cells(no_ligne_n, 1) = Feuil1.Cells(no_ligne_n1, 2) Then

count = 1

Else

count = 0

End If

Next


2 réponses

f894009 Messages postés 17224 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 12 janvier 2025 1 712
Modifié par f894009 le 23/01/2017 à 09:00
Bonjour,

C'est tout a fait normal que ca ne marche pas.
Feuil1.Cells(no_ligne_n, 1) = Feuil1.Cells(no_ligne_n1, 2)

Vous cherchez quoi au juste?
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
23 janv. 2017 à 09:21
Bonjour,

Puisque tu débutes en VBA, autant prendre quelques bonnes habitudes dès maintenant (en particulier le 3 et le 1).

1. Commencer chaque module par
Option Explicit
: ça t'oblige à déclarer toutes les variables, ça évite les ambigüités et ça limite les risques d'erreur.

2. Respecter certaines règles de nommage des variables, notamment l'emploi d'un préfixe qui identifie le type de variable : le code est plus lisible par tous. Plus d'explications ici : Conventions typographiques

3. Proscrire l'emploi des instruction implicites, c'est-à-dire préciser systématiquement le(s) parent(s) des objets autant que nécessaire et préciser la propriété concernée : ça évite aussi les ambigüités et ça limite les risques de résultat inattendu. Par exemple au lieu d'écrire :
  UserForm1.TextBox1 = Range("A1")
écrire plus précisément :
  UserForm1.TextBox1.Value = ThisWorkbook.Worksheets("Feuil1").Range("A1").Value
ou selon le besoin :
  UserForm1.TextBox1.Text = ThisWorkbook.Worksheets("Feuil1").Range("A1").Text
ce qui, évidemment, ne donne pas le même résultat !

0