Se connecter avec
S'enregistrer | Connectez-vous

Insérer une comparaison de texte avec une ligne

Dernière réponse : dans Programmation

Bonjour a tous ,
je cherche actuellement le moyen de comparer une ligne avec un texte pour programmer une alerte en cas de modification du fichier

Autrement dit cela se présenterai sous cette forme :
si la ligne 3 est égale a "jambon" alors tout va bien
si ce n'est pas le cas envoyer un mail a l'admin du réseau

je ne trouve pas la commande ou la syntaxe qui pourrait m'aider

Merci d'avoir lu ,
Cordialement Nego.

Autres pages sur : inserer comparaison texte ligne

Lassé par la pub ? Créez un compte

Meilleure solution

Expert Programmation

Salut negoksa,

Plusieurs choses sur ton code :

tu défini les variables ligne 2... mais tu ne donne pas le type, autrement dit, définition incomplete.. (utilise l'Option EXPLICIT avant de démarer ton sub pour identifier ces problemes de variables.)

par exemple f est la variable qui représente ton fichier (celui que tu ouvre) donc tu la défini comme suit :

  1. Dim f AS Workbook


En effet ta ligne 6 est quelques peu étrange !!!
Tu dois définir une adresse de cellule : une ligne et une colonne puis lui dire de regarder soit la Valeur soit le texte qui doit etre égal a Jambon...
et encore, si tu as plusieurs feuilles dans ton fichier, il faut que tu spécifie le nom de feuille dans laquelle chercher le texte de la cellule .(la définir puis l'utiliser)
Autrement dit :
  1. Dim feuille2 as Worksheet '// définition
  2. Set feuille2 = Worksheets("ta feuille") '// précsions sur la variable
  3. [...] '// ci dessous utilisation de la variable feuille2
  4. if feuille2.cells(ligne,colonne).Text= "JAMBON" then '// ou .Value a la place de .Text
  5. [...]
  6. end if


Ensuit s'i ne trouve pas de cellule contenant Jambon, cela peut aussi venir des Majuscules/ Minuscules auquel VBA est sensible ( On parle de Casse). Utilise les fonction Lcase() et Ucase() pour mettre respectivement tout en minuscule ou en majuscule avant de faire le test :
  1. [...]
  2. if Lcase(feuille2.cells(ligne,colonne).Text) = "jambon" then
  3. [...]


change déja ca et tiens moi au courant !
(ce serait bien d'avoir tout le code, si ce n'est qu'une partie, le probleme peut aussi etre ailleurs... et autant rendre tout ton code "propre" !!

A te lire,

Salut a toi Zeb

Je débute en programmation et je souhaiterai créer un script qui ferait en sorte que
si dans un document X la ligne 3 est égale a une expression que j'ai choisie au préalable il me notifie par mail ou pas

en gros le script serai (en beaucoup simplifié)

Si dans le fichier X a la ligne 3 il y a l'expression que j'ai choisie one ne fait rien autrement on envoie un mail a monsieur le boucher


En éspérant avoir été plus clair,
Cordialement Nego
Expert Programmation

Salut,
Je pense que zeb voulait savoirsi tu avais déja commencer a créer ton script et , si oui, si tu pouvait le mettre en ligne pour qu'on se base dessus pour t'aider, te montrer les erreurs , etc...

  1. Const ForReading = 1, ForWriting = 2
  2. Dim oFso, f
  3. Set oFso = CreateObject("Scripting.FileSystemObject")
  4. Set f = oFso.OpenTextFile("c:\documents and settings\XXXXXX", ForReading)
  5. f.Close
  6. if (ligne3=JAMBON)=true then
  7. msgbox " go paramétrer l'envoi mail"
  8. else msgbox "keep trying"
  9. end if

Voici mon code,il se lance sans problème mais arrivé au moment ou il me notifie si je peux passer a la suite, il semblerai qu'il me donne uniquement la premiere msgbox quel que soit ce que je bidouille dans le document

il me semble que le problème vient clairement de
if (ligne3=JAMBON)=true then

seulement je ne voit pas comment réécrire mon truc
Lassé par la pub ? Créez un compte