Je cherche une fonction

Bonjour,
Je travaille sur des adresses et je cherche à nettoyer au maximum 3 colonnes; avec adresse 1, Adresse 2 et adresse 3, Je cherche une fonction qui dit :
par exemple en adresse 1 si dans adresse il n'y pas (rue, avenue, bat, bp, etc...) alors c'est VRAI, si non c'est FAUX.

Pour adresse 2: si il n'y a pas (ZI, ZA, lieu-dit etc...) alors c'est VRAI il y en a alors c'est FAUX.

Et pour adresse 3 c'est si il n'y a pas (rue, avenue, bat, bp, ZI, ZA, lieu-dit etc...) alors c'est VRAI si non c'est FAUX.

C'est une fonction qui va s'appliquer sur chaque colonnes ; adresse 1, 2 ou 3.
Pour ne pas me prendre la tête, je vais utiliser 3 macro verif1, verf2, verif3, si c'est possible de le faire sur une seule macro serait cool. Merci d'avance.

8 réponses

  1. Bonjour, pour les 3 adresse, tu peux combiner la fonction si() avec cherche(). Cherche() va te renvoyer 0 si rien n'est trouvé ou le numéro du caractère. En fonction de ce qui est renvoyé, avec la si() tu crées ta condition
    0
    1. Une fonction dans une macro c'est mieux, cela m'éviterai de le refaire tout le temps.
      0
      1. Bonjour, avec l'enregistreur de macro tu crées ton script et après, tu l'améliore
        0
        1. Bonjour

          Fournis un exemple de ton fichier avec les 3 listes exhaustives des valeurs à rechercher pour les 3 adresses en le postant sur mon-partage.fr , fais créer un lien que tu copies et reviens coller ici

          Cdlmnt
          Via
          0
          1. Contributeur
            Bonjour à tous

            testé sur colonne A, B, C (Non précisé par hugo)
            liste des mots interdits à complèter

            0
            1. Bonjour
              Michel désolé de vous répondre à ce message aussi tard, j'étais en période de rush sur d'autres projets, je vous écris au sujet du code, tout donne vrai. Je vous envoie le code. c'est possible de mettre dans le la boucle for, (si les 3 colonnes sont vides alors n'affiche rien)
              Option Explicit

              Function Terme_interdit(activecell)
              Dim Liste, Col As Byte, Cptr As Byte
              Dim adresse, test As String, cpt As Byte, Tablo
              '-Liste des mots interdits selon la colonne active
              Col = activecell.Column
              Select Case Col
              Case Is = 1
              Liste = Array("rue", "avenue", "bat", "bp")
              Case Is = 2
              Liste = Array("Zi", "ZA", "lieu-dit")
              Case Is = 3
              Liste = Array("rue", "avenue", "bat", "bp", "ZI", "ZA", "lieu-dit")
              Case Else
              GoTo Erreur
              End Select

              For Cptr = 0 To UBound(Liste)
              test = Liste(Cptr)
              'teste si la liste contient la valeur de test
              On Error GoTo Valid 'sinon on valide "vrai"
              If Application.Find(test, activecell) > 0 Then
              Terme_interdit = "FAUX"
              Exit Function
              End If
              Next

              Exit Function

              Valid:

              Terme_interdit = "VRAI"
              Exit Function
              Erreur:

              MsgBox "colonne hors champ d'action"
              End Function

              Merci d'avance.
              0
            2. Contributeur
              trop tard
              0
            3. Donc vous ne voulez pas m'aidez?
              0
            4. Contributeur
              Tu demandes de l'aide, on passe pas parfois des heures à essayer de t'apporter une solution le plus rapidement possible ( on a aussi des urgences personnelles à gérer) et toi, tu n'as m^me pas le minimum de politesse, ou plutôt de respect humain, pour faire signe pendant plus d'un mois pour expliquer ton silence...

              Désolé mais être bénévole ne signifie pas être taillable et corvéable à Merci...
              0
          2. Vous voulais savoir la verité. La voici mon père est decédé il y a un mois et demi. Donc je ne pouvais pas vous repondre dsl.
            0
            1. Vous voulais savoir la verité. La voici mon père est decédé il y a un mois et demi. Donc je ne pouvais pas vous repondre dsl.
              0
              1. Bonjour,

                Je suis en plein dans le sujet, et je n'arrive pas à trouver une issue possible. Je suis vraiment coincé là, merci de m'avance de votre aide.
                0