Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Décomposer le texte "sVar1=1 or sVar2 = 3" en calcul

4 réponses
Avatar
Alex St-Pierre
Bonjour!
Est-il possible de mettre une fonction du style avec sCondition = une
équation logique inscrite sous forme de string et qui est convertie en calcul
pour revoyer Vrai ou Faux?
Merci !
Alex
Ex:
Sub Text()
call AjoutTexte("Mon texte conditionnel","sVar1=1 or sVar2 = 3")
End Sub
Function AjoutTexte(sText as String, sCondition as string)
'??? Comment savoir si sCondition est rempli?
If sCondition = True Then
oRange.InsertAfter sText
End If
End Function
--
Alex St-Pierre

4 réponses

Avatar
Patrick Penet
Par exemple :

Sub Text()
If AjoutTexte("Mon texte conditionnel",sVar) = True Then
'Ta bidouille perso
End If
End Sub
'Le call est inutile

Function AjoutTexte(sText as String, sCondition as string) As Boolean
Select Case sCondition
Case "1"
oRange.InsertAfter sText1
AjoutTexte = True
Case "2"
oRange.InsertAfter sText2
AjoutTexte = True
Case "3"
oRange.InsertAfter sText3
AjoutTexte = True
Case Else : AjoutTexte = False
End Select
End Function

Cdlt.
P.

"Alex St-Pierre" a écrit dans le message de news:

Bonjour!
Est-il possible de mettre une fonction du style avec sCondition = une
équation logique inscrite sous forme de string et qui est convertie en calcul
pour revoyer Vrai ou Faux?
Merci !
Alex
Ex:
Sub Text()
call AjoutTexte("Mon texte conditionnel","sVar1=1 or sVar2 = 3")
End Sub
Function AjoutTexte(sText as String, sCondition as string)
'??? Comment savoir si sCondition est rempli?
If sCondition = True Then
oRange.InsertAfter sText
End If
End Function
--
Alex St-Pierre


Avatar
Anacoluthe
Bonjour !

'Alex St-Pierre' nous a écrit ...
Est-il possible de mettre une fonction du style avec sCondition = une
équation logique inscrite sous forme de string et qui est convertie en calcul
pour revoyer Vrai ou Faux?
Merci !
Alex
Ex:
Sub Text()
call AjoutTexte("Mon texte conditionnel","sVar1=1 or sVar2 = 3")
End Sub
Function AjoutTexte(sText as String, sCondition as string)
'??? Comment savoir si sCondition est rempli?
If sCondition = True Then
oRange.InsertAfter sText
End If
End Function


Il est fort probable que vous compliquez la vie inutilement !!!

Ou alors expliquez-nous pourquoi vouloir évaluer une expression vb
dans une /chaîne/ vb . Utilisez vos expressions simplement,
SANS guillemets !

AjoutTexte "Mon texte conditionnel", Var1 = 1 Or Var2 = 3

avec la procédure (pas la fonction) :

Sub AjoutTexte(sText as String, Condition as Boolean)
If Condition = True Then oRange.InsertAfter sText
End If

Anacoluthe
« Il est très difficile d'imaginer quelque chose de simple. »
- Pierre MAC ORLAN

Avatar
Alex St-Pierre
Bonjour Anacoluthe!
Je crois que mettre la formule dans la condition en boolean est une très
bonne idée! Est-ce qu'il est possible d'avoir accès au string de la condition
qui renvoie vrai ou dois-je l'inclure dans un autre argument?
ex: Call AjoutTexte(sText as String, Var1 = 1 or Var2 = 3, "Var1 = 1 or Var2
= 3")
Le but de tout ça, c'est de mettre un flag dans le fichier word qui va me
permettre de générer tous les textes dans Word peut-importe les conditions.
Cela va créer un document modèle qui va servir de référence pour savoir
pourquoi certains textes ne s'affichent pas. Donc, en utilisant une fonction,
si le flag est à 1, je vais imprimer:
"Var1 = 1 or Var2 = 3": => Texte
etc.
Merci !
Alex

Autre question:
Pour sauter de paragraphe à paragraphe, est-il préférable de compte les
paragraphes avec iP ou se dire que le paragraphe est toujours le dernier et
mettre
oRange.InsertAfter Chr(13)
Set oRange = docWord.Paragraphs(docWord.Paragraphs.Count).Range
vs
Sub NextParagraph(myStyle As String, Optional iSpaceBefore As Integer,
Optional iSpaceAfter As Integer, Optional iNextPage As Integer = 0)
iP = iP + 1
oRange.InsertAfter Chr(13)
Set oRange = docWord.Paragraphs(iP).Range
If iNextPage = 1 Then oRange.InsertBreak Type:=wdPageBreak: iP =
docWord.Paragraphs.Count: Set oRange = docWord.Paragraphs(iP).Range
Call ParagraphStyle(myStyle, iSpaceBefore, iSpaceAfter)
If iP <> docWord.Paragraphs.Count Then MsgBox ("Erreur: numéro de
paragraphe")
End Sub
--
Alex St-Pierre


"Anacoluthe" wrote:

Bonjour !

'Alex St-Pierre' nous a écrit ...
Est-il possible de mettre une fonction du style avec sCondition = une
équation logique inscrite sous forme de string et qui est convertie en calcul
pour revoyer Vrai ou Faux?
Merci !
Alex
Ex:
Sub Text()
call AjoutTexte("Mon texte conditionnel","sVar1=1 or sVar2 = 3")
End Sub
Function AjoutTexte(sText as String, sCondition as string)
'??? Comment savoir si sCondition est rempli?
If sCondition = True Then
oRange.InsertAfter sText
End If
End Function


Il est fort probable que vous compliquez la vie inutilement !!!

Ou alors expliquez-nous pourquoi vouloir évaluer une expression vb
dans une /chaîne/ vb . Utilisez vos expressions simplement,
SANS guillemets !

AjoutTexte "Mon texte conditionnel", Var1 = 1 Or Var2 = 3

avec la procédure (pas la fonction) :

Sub AjoutTexte(sText as String, Condition as Boolean)
If Condition = True Then oRange.InsertAfter sText
End If

Anacoluthe
« Il est très difficile d'imaginer quelque chose de simple. »
- Pierre MAC ORLAN




Avatar
Anacoluthe
Bonjour !

'Alex St-Pierre' nous a écrit ...
Je crois que mettre la formule dans la condition en boolean est une très
bonne idée! Est-ce qu'il est possible d'avoir accès au string de la condition
qui renvoie vrai ou dois-je l'inclure dans un autre argument?
ex: Call AjoutTexte(sText as String, Var1 = 1 or Var2 = 3, "Var1 = 1 or Var2
= 3")
Le but de tout ça, c'est de mettre un flag dans le fichier word qui va me
permettre de générer tous les textes dans Word peut-importe les conditions.
Cela va créer un document modèle qui va servir de référence pour savoir
pourquoi certains textes ne s'affichent pas. Donc, en utilisant une fonction,
si le flag est à 1, je vais imprimer:
"Var1 = 1 or Var2 = 3": => Texte


Euh désolé, je ne comprends toujours pas votre cheminement... :-p

Quel intérêt de mettre en argument d'une procédure une chaîne
qui ne sert à rien ? Si vous voulez que votre texte rappelle
les valeurs des tests, inscrivez-les en clair tout simplement !!!

.InsertAfter "Var1 =" & Var1 & " et Var2=" & Var2 & " donc j'écris..."


Autre question:
Pour sauter de paragraphe à paragraphe, est-il préférable de compte les
paragraphes avec iP ou se dire que le paragraphe est toujours le dernier et
mettre
oRange.InsertAfter Chr(13)
Set oRange = docWord.Paragraphs(docWord.Paragraphs.Count).Range
vs
Sub NextParagraph(myStyle As String, Optional iSpaceBefore As Integer,
Optional iSpaceAfter As Integer, Optional iNextPage As Integer = 0)
iP = iP + 1
oRange.InsertAfter Chr(13)
Set oRange = docWord.Paragraphs(iP).Range
If iNextPage = 1 Then oRange.InsertBreak Type:=wdPageBreak: iP =
docWord.Paragraphs.Count: Set oRange = docWord.Paragraphs(iP).Range
Call ParagraphStyle(myStyle, iSpaceBefore, iSpaceAfter)
If iP <> docWord.Paragraphs.Count Then MsgBox ("Erreur: numéro de
paragraphe")
End Sub


Re Euh, je ne comprends rien de votre objectif :-[
Tout ce code en l'état me semble bourré d'erreurs.
Désolé, pouvez-vous préciser un peu ce que vous cherchez ?

Anacoluthe
« Je ne cherche pas à connaître les réponses,
je cherche à comprendre les questions. »
- CONFUCIUS