MsgBox du contenu d'une cellule résultant des contenus de 2 autres cellules

Fermé
arsene53 Messages postés 48 Date d'inscription mardi 7 novembre 2017 Statut Membre Dernière intervention 23 novembre 2021 - 3 avril 2020 à 01:01
arsene53 Messages postés 48 Date d'inscription mardi 7 novembre 2017 Statut Membre Dernière intervention 23 novembre 2021 - 4 avril 2020 à 01:56
Bonjour à tous,

Je suis un débutant en vba et j’ai quelques soucis pour afficher à l’écran, par MsgBox, le contenu d’une cellule résultant des contenus de 2 autres cellules.
En effet, je dispose d’un fichier excel dont les cellules contiennent des chiffres et à certains endroits des lettres et des dates.
Pour une ligne donnée lue sur la feuille de calcul et à partir de 2 cellules, je souhaiterais afficher à l’écran le contenu d’une 3ème cellule résultant des contenus des 2(deux) 1ères cellules. Cette 3ème cellule sera exprimée sous forme de couple à savoir:
(Contenu Cellule 1, Contenu Cellule 2).

Exemple : 6 et 2 sont les contenus respectifs des cellules L 5 et L 6 (où L représente le N° de Ligne puis 5 et 6 représentant les colonnes).
! Col 5 ! Col 6 ! Col 7 !
Ligne 6 --- ! 6 ! 2 ! (6,2) !

Maintenant voici le problème :

A la fin de chaque ligne, je souhaiterais afficher dans un MsgBox, le contenu de la 3ème cellule.
Mais, j’ai le message suivant : « Erreur de compilation : Attendu: Fin d’instruction »

En effet, le problème se pose sur la ligne portant l’instruction suivante qui est en rouge :
MsgBox "("&L5&","&L6&")" , avec en bleu ceci "," dans les parenthèses.

Je vous remercie prie de bien vouloir m’aider.


Voici le code utilisé :

Sub Testnl02()
Dim w1 As Worksheet
Dim w2 As Worksheet
Dim Ligne As Long
Dim L As Integer

Dim Ti_1 As String
Dim Nu_1 As String
Dim Da_1 As String
Dim Un_1 As Variant
Dim De_1 As String
Dim Tr_1 As Variant

Dim Cpt As Integer

Workbooks.Open Filename:="E:\EXCEL VBA\Exemples 03\TestL02.xls"

Set w1 = Worksheets("Liste")
Ligne = w1.Cells(Rows.Count, 1).End(xlUp).Row
Application.ScreenUpdating = False

For L = 1 To Ligne
w1.Select

Ti_1 = w1.Cells(L, 1)
Nu_1 = w1.Cells(L, 2)
Da_1 = w1.Cells(L, 3)
Un_1 = w1.Cells(L, 4)
De_1 = w1.Cells(L, 5)
Tr_1 = w1.Cells(L, 6)

MsgBox " -- Fin de la ligne N° = " & L & " "

MsgBox "("&L5&","&L6&")"
MsgBox "-" & Nu_1 & "-" & Da_1 & "-" & Un_1 & "-" & De_1 & "-" & Tr_1 & " "

Next L
Application.ScreenUpdating = True
End Sub


arsene53
A voir également:

3 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
3 avril 2020 à 07:53
Bonjour
Ce n'est pas L5 mais De_1
Ce n'est pas L6 mais Tr_1
0
arsene53 Messages postés 48 Date d'inscription mardi 7 novembre 2017 Statut Membre Dernière intervention 23 novembre 2021
4 avril 2020 à 00:25
Bonjour Jordane45,

Je vous remercie pour la réponse.
La modification a été effectuée, c'est à dire en remplaçant l'ancienne instruction
MsgBox "("&L5&","&L6&")" par celle que vous me proposez soit:
MsgBox "("&De_1&","&Tr_1&")" mais le message erreur persiste à savoir:

« Erreur de compilation : Attendu: Fin d’instruction » avec en bleu ceci "," dans les parenthèses.

Cordialement

arsene53
0
arsene53 Messages postés 48 Date d'inscription mardi 7 novembre 2017 Statut Membre Dernière intervention 23 novembre 2021
4 avril 2020 à 01:56
Bonjour Jordane45,

En cherchant un peu, j'ai trouvé la solution.

En effet, à partir de la solution que vous m'avez proposée, j'ai d'abord essayé d'introduire un espace (un blanc) de part et d'autre de chaque caractère &

Ensuite, j'ai mis du blanc :
- après la parenthèse ouvrante (
- avant la parenthèse fermante )

Et ça a marché.

Illustration:

- ancienne instruction: MsgBox "("&De_1&","&Tr_1&")"

- nouvelle instruction: MsgBox "( " & De_1 & "," & Tr_1 & " )"

Merci beaucoup pour l'aide, pour m'avoir mis sur la voie.


S'il vous plaît, j'ai un dernier souci, pour être complet.
Je voudrais vous solliciter pour résoudre un autre problème lié à celui qui vient d'être résolu.

En effet, je souhaiterais, qu'en plus de l'affichage par MsgBox,
- d'abord, écrire ces données (affichées) dans une autre feuille nommée " feuil2 " du même classeur.
- puis, écrire le contenu de l'enregistrement traité dans un 2ème fichier excel qui s'appelleraît:
" Fic_nouv "

Cordialement

arsene53
0