XL 2021 Problème réaffectation variable Objet

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 !

treza88

XLDnaute Occasionnel
Bonjour à tous,

J'ai un problème quand j'essaie de réaffecter une variable objet avec une autre valeur dans une boucle, la variable objet ne semble pas prendre la nouvelle valeur, c'est toujours la première qui reste active.

Voici le début de mon code, dans lequel je ne comprends pas ma variable wsSource et sourcePlage reste avec la première valeur affecté :
VB:
Dim num As Integer
num = 0
Dim wbDest As Workbook
Dim wbSource As Workbook
Dim wsSource As Worksheet
Dim wsDest As Worksheet
Dim filePath As String
Dim sourcePlage As Range
Dim destRange As Range
Dim plageUnion As Range
Dim srt As Range
Dim feuille As String


   
' Permet à l'utilisateur de sélectionner le fichier source
filePath = "C:\Users\THOMESHE\Documents\Sauvegarde Dev\Fichier Excel\Plan de charge\14_11_2025\Plan de charge.xlsm"


If filePath <> "False" Then ' Ouvrir le classeur source en lecture seule
    Set wbSource = Workbooks.Open(Filename:=filePath, ReadOnly:=True)
    Set wsSource = wbSource.Sheets("Terminés")
    For i = 1 To 2
      
        If i = 2 Then
            wsSource = wbSource.Sheets("Charges")
        End If
      
        Application.CutCopyMode = False
       
        ' Définir la plage à copier
        Set sourcePlage = wsSource.Range("A6:" & Cells(Rows.Count, 3).End(xlUp).Address, "E6:" & Cells(Rows.Count, 7).End(xlUp).Address) ' Remplacez par votre plage de cellules
        nbLignesPlage = 0
        nbLignesPlage = sourcePlage.Rows.Count
        MsgBox nbLignesPlage
        Stop
    ' Boucler sur chaque ligne de la plage
        For Each ligne In sourcePlage.Rows
            'MsgBox ligne.Address
            'Stop
            lign = False
            ' Exécuter une action sur la cellule courante
            For Each cell In ligne.Cells
 
                If Split(cell.Address, "$")(1) = "A" Then
                'MsgBox cell.Text & " " & cell.Address
                '         Stop
                    If Trim(cell.Text) = "T" Or Trim(cell.Text) = "P" Or Trim(cell.Text) = "t" Or Trim(cell.Text) = "p" Then
  
                    num = num + 1
                    lign = True
                    Set strRng = ligne
                    '    MsgBox strRng.Address

                    End If
                End If
                'Stop
            Next cell
            If lign Then
            'MsgBox "ok"
                If num = 1 Then
                    Set plageUnion = strRng
                Else
                    plageUnion = Union(plageUnion, strRng)
                End If
                'MsgBox plageUnion.Address
                'Stop
            End If
        Next ligne
        Set sourcePlage = Nothing
    Next i
 
Dernière édition:
- 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
725
Réponses
4
Affichages
589
Réponses
2
Affichages
335
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Retour