Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Adresse d'une valeur dans une MsgBox

  • Initiateur de la discussion Initiateur de la discussion BChaly
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

BChaly

XLDnaute Occasionnel
Bonsoir à tous,

Le code suivant fonctionne très bien pour trouver l'adresse d'une valeur dans une MsgBox.

Comment puis-je modifier ce code pour supprimer l'adresse des cellules vides?
(Supprimer la 1ere ligne du message dans mon exemple)

Merci pour votre aide.

Cordialement,

BChaly

Code:
Option Explicit

Sub AdresseValeur()
 
Dim D1, D2 As Object
Dim V1, V2 As Variant
Dim K1 As Variant
Dim Rge As Range
Dim i As Integer
Dim No, Address As String
 
Set D1 = CreateObject("Scripting.Dictionary")
Set D2 = CreateObject("Scripting.Dictionary")
Set Rge = Range([B1], Range("B" & Rows.Count).End(xlUp))

    For i = 1 To Rge.Count
        No = Rge(i) & " " & Rge(i).Offset(0, 1)
                If D1.exists(No) = True Then
                D1.Add No, No
                    Else
            If D2.exists(No) = False Then
                D2.Add No, Rge(i).Address(0, 0)
                    Else
                D2(No) = D2(No) & "; " & Rge(i).Address(0, 0)
            End If
            End If
    Next i
   
V1 = D2.Items
K1 = D2.keys
     
    For i = 0 To D2.Count - 1
        V2 = V2 & K1(i) & " se trouve dans la cellule " & V1(i) & vbCrLf
    Next i
 
MsgBox V2
    
End Sub
 

Pièces jointes

Dernière édition:
Re : Adresse d'une valeur dans une MsgBox

Bonjour BChaly, le Forum,
Bonjour pierrejean 🙂

Ou alors ceci:
Code:
Sub AdresseValeur()
 
Dim D1, D2 As Object
Dim V1, V2 As Variant
Dim K1 As Variant
Dim Rge As Range
Dim i As Integer
Dim No, Address As String
 
Set D1 = CreateObject("Scripting.Dictionary")
Set D2 = CreateObject("Scripting.Dictionary")
Set Rge = Range([B1], Range("B" & Rows.Count).End(xlUp))

    For i = 1 To Rge.Count
        No = Rge(i) & " " & Rge(i).Offset(0, 1)
        If Rge(i) <> "" Then '=========================================
            If D1.exists(No) = True Then
                D1.Add No, No
                    Else
            If D2.exists(No) = False Then
                D2.Add No, Rge(i).Address(0, 0)
                    Else
                D2(No) = D2(No) & "; " & Rge(i).Address(0, 0)
            End If
            End If
        End If '========================================================
    Next i
   
V1 = D2.Items
K1 = D2.keys
    For i = 0 To D2.Count - 1
        V2 = V2 & K1(i) & " se trouve dans la cellule " & V1(i) & vbCrLf
    Next i
MsgBox V2
End Sub

@+ 😎
 
Re : Adresse d'une valeur dans une MsgBox

Bonsoir pierrejean,
Bonsoir xhudi69,

Voici deux excellentes solutions qui fonctionnent parfaitement!!!

Merci à tous les deux pour votre aide.

Cordialement,

BChaly
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
913
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…