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

Un msgbox non modal ?

10 réponses
Avatar
Gadget
Salut à tous.
Y a-t-il celà d'implémenté dans VBA, qui permettrait d'interrompre
l'execution d'une macro le temps de modifier quelques cellules.
Merci.



--
Visitez notre site !
>>> www.tohubohu.fr <<<

10 réponses

Avatar
FFO
Salut Gadget

Peut être inclure une pause dans ton code et d'enclencher une 2° partie de
son instruction dans une autre macro

Le code à inclure en fin de 1° partie de ton code dans une 1° Macro :

Application.OnTime Now + TimeValue("00:00:01"), "2° Macro"

la 2° Macro possède la 2° partie de ton code
Le TimeValue est à actualiser en fonction de ton besoin

Peut être ta solution
Dis moi !!!


Salut à tous.
Y a-t-il celà d'implémenté dans VBA, qui permettrait d'interrompre
l'execution d'une macro le temps de modifier quelques cellules.
Merci.



--
Visitez notre site !
www.tohubohu.fr <<<











Avatar
Gadget
Merci mais non ce n'et pas vraiment ce dont j'ai besoin. Le temps nécessaire
à la modification des cellules concernées est très variable.

--
Visitez notre site !
www.tohubohu.fr <<<
"FFO" a écrit dans le message de news:




Salut Gadget

Peut être inclure une pause dans ton code et d'enclencher une 2° partie de
son instruction dans une autre macro

Le code à inclure en fin de 1° partie de ton code dans une 1° Macro :

Application.OnTime Now + TimeValue("00:00:01"), "2° Macro"

la 2° Macro possède la 2° partie de ton code
Le TimeValue est à actualiser en fonction de ton besoin

Peut être ta solution
Dis moi !!!


Salut à tous.
Y a-t-il celà d'implémenté dans VBA, qui permettrait d'interrompre
l'execution d'une macro le temps de modifier quelques cellules.
Merci.



--
Visitez notre site !
www.tohubohu.fr <<<













Avatar
LSteph
Bonjour,

Si je m'en tiens à la question:

Tout simplement, mets un bouton qui lance ce que doit executer la macro
avant modification des cellules et un autre qui lance la macro devant
être executée , après modification des cellules.

Si je m'en tiens à l'objet:

un msgbox non mais un userform oui.

Cordialement.

lSteph



Salut à tous.
Y a-t-il celà d'implémenté dans VBA, qui permettrait d'interrompre
l'execution d'une macro le temps de modifier quelques cellules.
Merci.





Avatar
Gadget
Merci de cette réponse, en fait j'ai créé une userform non-modale, c'est ce
qui correspond le mieux à ce que je cherchais.

Autre chose :
Quel est la constante VBA qui remplace le 'Alt Entrée' qui permet de mettre
plusieurs lignes dans une cellule ? J'ai besoin de ça parce que je modifie
par macro une cellule en concaténant le texte de plusieurs autres, et quand
j'utilise VbCrLf ou VbCr ou VbLf, cela me rajoute un petit carré dans la
cellule destination. De plus, ce petit carré se transforme en un double
retour chariot si je lie la cellule à un document Word.

Une idée ?


--
Visitez notre site !
www.tohubohu.fr <<<
"LSteph" a écrit dans le message de news:




Bonjour,

Si je m'en tiens à la question:

Tout simplement, mets un bouton qui lance ce que doit executer la macro
avant modification des cellules et un autre qui lance la macro devant être
executée , après modification des cellules.

Si je m'en tiens à l'objet:

un msgbox non mais un userform oui.

Cordialement.

lSteph



Salut à tous.
Y a-t-il celà d'implémenté dans VBA, qui permettrait d'interrompre
l'execution d'une macro le temps de modifier quelques cellules.
Merci.







Avatar
isabelle
bonjour Gadget,

Range("A1").WrapText = True

isabelle


Merci de cette réponse, en fait j'ai créé une userform non-modale, c'est ce
qui correspond le mieux à ce que je cherchais.

Autre chose :
Quel est la constante VBA qui remplace le 'Alt Entrée' qui permet de mettre
plusieurs lignes dans une cellule ? J'ai besoin de ça parce que je modifie
par macro une cellule en concaténant le texte de plusieurs autres, et quand
j'utilise VbCrLf ou VbCr ou VbLf, cela me rajoute un petit carré dans la
cellule destination. De plus, ce petit carré se transforme en un double
retour chariot si je lie la cellule à un document Word.

Une idée ?




Avatar
Gadget
Merci mais ce n'est pas ce que je cherche. Je vais formuler différemment.
J'ai dans une cellule (A1) le nom de la personne ( Jean DUPONT'), dans une
autre (A2) la première pertie de son adresse ('18 rue des fleurs') et dans
la troisième (A3) la ville (' 45018 MACHIN')
Je veux en VBA concaténer ces trois cellules dans la A4
Si je mets

[A4]=[A1]&[A2]&[A3]

j'ai comme résultat dans A4 :

JeanDUPONT18 rue des Fleurs45018 MACHIN

si je mets
[A4]=[A1] & VbCrLf & [A2]& VbCrLf & [A3]

j'ai comme résultat visuel en A4 :

Jean DUPONTx
18 rue des fleursx
45018 MACHIN

Où le 'x' est en fait un petit carré (je n'ai pas trouvé le caractère sur
mon clavier).

De plus, si j'ai une laison de cette cellule vers Word, sur mon document
Word j'ai :

Jean DUPONT

18 rue des fleurs

45018 MACHIN

C'est-à-dire une ligne supplémentaire que je ne veux pas.

Any suggestion ?
Merci.


--
Visitez notre site !
www.tohubohu.fr <<<
"isabelle" a écrit dans le message de news:




bonjour Gadget,

Range("A1").WrapText = True

isabelle


Merci de cette réponse, en fait j'ai créé une userform non-modale, c'est
ce qui correspond le mieux à ce que je cherchais.

Autre chose :
Quel est la constante VBA qui remplace le 'Alt Entrée' qui permet de
mettre plusieurs lignes dans une cellule ? J'ai besoin de ça parce que je
modifie par macro une cellule en concaténant le texte de plusieurs
autres, et quand j'utilise VbCrLf ou VbCr ou VbLf, cela me rajoute un
petit carré dans la cellule destination. De plus, ce petit carré se
transforme en un double retour chariot si je lie la cellule à un document
Word.

Une idée ?






Avatar
LSteph
Bonsoir,

En fait vbcrlf ou autre chr(10)...,
l'important pour excel est que la cellule soit au format renvoi à la
ligne automatique

Activecell.wraptext=true

Quand je copie une telle cellule dans word j'obtiens un simple retour.

Cordialement.

lSteph

Merci de cette réponse, en fait j'ai créé une userform non-modale, c'est ce
qui correspond le mieux à ce que je cherchais.

Autre chose :
Quel est la constante VBA qui remplace le 'Alt Entrée' qui permet de mettre
plusieurs lignes dans une cellule ? J'ai besoin de ça parce que je modifie
par macro une cellule en concaténant le texte de plusieurs autres, et quand
j'utilise VbCrLf ou VbCr ou VbLf, cela me rajoute un petit carré dans la
cellule destination. De plus, ce petit carré se transforme en un double
retour chariot si je lie la cellule à un document Word.

Une idée ?




Avatar
Gadget
En fait, j'ai identifié le problème : durant ma procédure, je transfère la
valeur de ma cellule à ligne multiples dans un textbox de mon userform. Ce
text box est multiline, et sa propriété EnterKeyBehavior est sur True.
Quand je retransfère la valeur de mon textbox à ma cellule d'origine, après
modifification du text ou pas, je me retrouve avec des chr(13) à la fin de
chaque ligne.
Pour résoudre ce problème, j'ai ajouté une petite fonction qui vire les
chr(13) :

Function RetireChr13(Texte As String)
Dim i
For i = 1 To Len(Texte)
If Asc(Mid(Texte, i, 1)) <> 13 Then
RetireChr13 = RetireChr13 + Mid(Texte, i, 1)
End If
Next i
End Function

Ca marche, mais ca ralentit pas mal le transfert, surtout si j'ai des textes
longs.

Avez vous une autre solution (plus rapide) à me proposer ?
merci.





--
Visitez notre site !
www.tohubohu.fr <<<
"Gadget" a écrit dans le message de news:



463cae22$0$5111$
Merci mais ce n'est pas ce que je cherche. Je vais formuler différemment.
J'ai dans une cellule (A1) le nom de la personne ( Jean DUPONT'), dans une
autre (A2) la première pertie de son adresse ('18 rue des fleurs') et dans
la troisième (A3) la ville (' 45018 MACHIN')
Je veux en VBA concaténer ces trois cellules dans la A4
Si je mets

[A4]=[A1]&[A2]&[A3]

j'ai comme résultat dans A4 :

JeanDUPONT18 rue des Fleurs45018 MACHIN

si je mets
[A4]=[A1] & VbCrLf & [A2]& VbCrLf & [A3]

j'ai comme résultat visuel en A4 :

Jean DUPONTx
18 rue des fleursx
45018 MACHIN

Où le 'x' est en fait un petit carré (je n'ai pas trouvé le caractère sur
mon clavier).

De plus, si j'ai une laison de cette cellule vers Word, sur mon document
Word j'ai :

Jean DUPONT

18 rue des fleurs

45018 MACHIN

C'est-à-dire une ligne supplémentaire que je ne veux pas.

Any suggestion ?
Merci.


--
Visitez notre site !
www.tohubohu.fr <<<
"isabelle" a écrit dans le message de news:




bonjour Gadget,

Range("A1").WrapText = True

isabelle


Merci de cette réponse, en fait j'ai créé une userform non-modale, c'est
ce qui correspond le mieux à ce que je cherchais.

Autre chose :
Quel est la constante VBA qui remplace le 'Alt Entrée' qui permet de
mettre plusieurs lignes dans une cellule ? J'ai besoin de ça parce que
je modifie par macro une cellule en concaténant le texte de plusieurs
autres, et quand j'utilise VbCrLf ou VbCr ou VbLf, cela me rajoute un
petit carré dans la cellule destination. De plus, ce petit carré se
transforme en un double retour chariot si je lie la cellule à un
document Word.

Une idée ?









Avatar
tissot.emmanuel
Bonjour,

Tu peux essayer la fonction Epurage, soit en VB:

Range("A1").Value = WorksheetFunction.Clean(TextBox1.Value)

Cordialement,

Manu/

"Gadget" a écrit dans le message de news:
463d8c1a$0$5111$
En fait, j'ai identifié le problème : durant ma procédure, je transfère la
valeur de ma cellule à ligne multiples dans un textbox de mon userform. Ce
text box est multiline, et sa propriété EnterKeyBehavior est sur True.
Quand je retransfère la valeur de mon textbox à ma cellule d'origine,
après modifification du text ou pas, je me retrouve avec des chr(13) à la
fin de chaque ligne.
Pour résoudre ce problème, j'ai ajouté une petite fonction qui vire les
chr(13) :

Function RetireChr13(Texte As String)
Dim i
For i = 1 To Len(Texte)
If Asc(Mid(Texte, i, 1)) <> 13 Then
RetireChr13 = RetireChr13 + Mid(Texte, i, 1)
End If
Next i
End Function

Ca marche, mais ca ralentit pas mal le transfert, surtout si j'ai des
textes longs.

Avez vous une autre solution (plus rapide) à me proposer ?
merci.





--
Visitez notre site !
www.tohubohu.fr <<<
"Gadget" a écrit dans le message de news:



463cae22$0$5111$
Merci mais ce n'est pas ce que je cherche. Je vais formuler différemment.
J'ai dans une cellule (A1) le nom de la personne ( Jean DUPONT'), dans
une autre (A2) la première pertie de son adresse ('18 rue des fleurs') et
dans la troisième (A3) la ville (' 45018 MACHIN')
Je veux en VBA concaténer ces trois cellules dans la A4
Si je mets

[A4]=[A1]&[A2]&[A3]

j'ai comme résultat dans A4 :

JeanDUPONT18 rue des Fleurs45018 MACHIN

si je mets
[A4]=[A1] & VbCrLf & [A2]& VbCrLf & [A3]

j'ai comme résultat visuel en A4 :

Jean DUPONTx
18 rue des fleursx
45018 MACHIN

Où le 'x' est en fait un petit carré (je n'ai pas trouvé le caractère sur
mon clavier).

De plus, si j'ai une laison de cette cellule vers Word, sur mon document
Word j'ai :

Jean DUPONT

18 rue des fleurs

45018 MACHIN

C'est-à-dire une ligne supplémentaire que je ne veux pas.

Any suggestion ?
Merci.


--
Visitez notre site !
www.tohubohu.fr <<<
"isabelle" a écrit dans le message de news:




bonjour Gadget,

Range("A1").WrapText = True

isabelle


Merci de cette réponse, en fait j'ai créé une userform non-modale,
c'est ce qui correspond le mieux à ce que je cherchais.

Autre chose :
Quel est la constante VBA qui remplace le 'Alt Entrée' qui permet de
mettre plusieurs lignes dans une cellule ? J'ai besoin de ça parce que
je modifie par macro une cellule en concaténant le texte de plusieurs
autres, et quand j'utilise VbCrLf ou VbCr ou VbLf, cela me rajoute un
petit carré dans la cellule destination. De plus, ce petit carré se
transforme en un double retour chariot si je lie la cellule à un
document Word.

Une idée ?













Avatar
Gadget
Merci.
Ce n'est pas la solution escomptée, puisque celà concatène les chaines dans
la cellule sur une seule ligne (ça fait disparaître les AltEntrée de la
cellule d'origine)..
A défaut d'autre chose, je garde ma solution...
A plus.



--
Visitez notre site !
www.tohubohu.fr <<<
"tissot.emmanuel" a écrit dans le message de news:




Bonjour,

Tu peux essayer la fonction Epurage, soit en VB:

Range("A1").Value = WorksheetFunction.Clean(TextBox1.Value)

Cordialement,

Manu/

"Gadget" a écrit dans le message de news:
463d8c1a$0$5111$
En fait, j'ai identifié le problème : durant ma procédure, je transfère
la valeur de ma cellule à ligne multiples dans un textbox de mon
userform. Ce text box est multiline, et sa propriété EnterKeyBehavior est
sur True.
Quand je retransfère la valeur de mon textbox à ma cellule d'origine,
après modifification du text ou pas, je me retrouve avec des chr(13) à
la fin de chaque ligne.
Pour résoudre ce problème, j'ai ajouté une petite fonction qui vire les
chr(13) :

Function RetireChr13(Texte As String)
Dim i
For i = 1 To Len(Texte)
If Asc(Mid(Texte, i, 1)) <> 13 Then
RetireChr13 = RetireChr13 + Mid(Texte, i, 1)
End If
Next i
End Function

Ca marche, mais ca ralentit pas mal le transfert, surtout si j'ai des
textes longs.

Avez vous une autre solution (plus rapide) à me proposer ?
merci.





--
Visitez notre site !
www.tohubohu.fr <<<
"Gadget" a écrit dans le message de news:



463cae22$0$5111$
Merci mais ce n'est pas ce que je cherche. Je vais formuler
différemment.
J'ai dans une cellule (A1) le nom de la personne ( Jean DUPONT'), dans
une autre (A2) la première pertie de son adresse ('18 rue des fleurs')
et dans la troisième (A3) la ville (' 45018 MACHIN')
Je veux en VBA concaténer ces trois cellules dans la A4
Si je mets

[A4]=[A1]&[A2]&[A3]

j'ai comme résultat dans A4 :

JeanDUPONT18 rue des Fleurs45018 MACHIN

si je mets
[A4]=[A1] & VbCrLf & [A2]& VbCrLf & [A3]

j'ai comme résultat visuel en A4 :

Jean DUPONTx
18 rue des fleursx
45018 MACHIN

Où le 'x' est en fait un petit carré (je n'ai pas trouvé le caractère
sur mon clavier).

De plus, si j'ai une laison de cette cellule vers Word, sur mon document
Word j'ai :

Jean DUPONT

18 rue des fleurs

45018 MACHIN

C'est-à-dire une ligne supplémentaire que je ne veux pas.

Any suggestion ?
Merci.


--
Visitez notre site !
www.tohubohu.fr <<<
"isabelle" a écrit dans le message de news:




bonjour Gadget,

Range("A1").WrapText = True

isabelle


Merci de cette réponse, en fait j'ai créé une userform non-modale,
c'est ce qui correspond le mieux à ce que je cherchais.

Autre chose :
Quel est la constante VBA qui remplace le 'Alt Entrée' qui permet de
mettre plusieurs lignes dans une cellule ? J'ai besoin de ça parce que
je modifie par macro une cellule en concaténant le texte de plusieurs
autres, et quand j'utilise VbCrLf ou VbCr ou VbLf, cela me rajoute un
petit carré dans la cellule destination. De plus, ce petit carré se
transforme en un double retour chariot si je lie la cellule à un
document Word.

Une idée ?