Microsoft 365 Remplacement de valeur en comparant les valeurs

  • Initiateur de la discussion Initiateur de la discussion sam01
  • 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 !

sam01

XLDnaute Nouveau
Bonjour.

je souhaiterais comparer la valeur de la colonne B de la feuille source par rapport à la valeur de la colonne C de la feuille cible.

Si c'est la même valeur, reporter la valeur de la colonne B de la feuille cible vers la cellule de la colonne C de la feuille source.

merci pour votre aide.
 

Pièces jointes

Bonjour,

il faut enregistrer ton fichier en xlsm. copie/colle ce code dans un module standard et tu l’exécutes (F5)
VB:
Option Explicit
Sub Comparer_Reporter_BenC()
    Dim wsSource As Worksheet, wsCible As Worksheet
    Dim dlSource As Long, dlCible As Long
    Dim i As Long, j As Long
    
    ' Définir les feuilles source et cible
    Set wsSource = ThisWorkbook.Sheets("source")
    Set wsCible = ThisWorkbook.Sheets("cible")
    
    ' Trouver la dernière ligne de chaque feuille
    dlSource = wsSource.Cells(wsSource.Rows.Count, "B").End(xlUp).Row
    dlCible = wsCible.Cells(wsCible.Rows.Count, "C").End(xlUp).Row
    
    ' Boucle à travers chaque ligne de la feuille source
    For i = 1 To dlSource
        ' Boucle à travers chaque ligne de la feuille cible
        For j = 2 To dlCible ' Commencer à 2 pour ignorer la ligne des titres
            ' Comparer les valeurs
            If wsSource.Cells(i, "B").Value = wsCible.Cells(j, "C").Value Then
                ' Si égal, reporter la valeur de la colonne B de la feuille cible dans la colonne C de la feuille source
                wsSource.Cells(i, "C").Value = wsCible.Cells(j, "B").Value
                Exit For ' Sortir de la boucle si une correspondance est trouvée
            End If
        Next j
    Next i
    
    MsgBox "Mise à jour terminée dans la colonne C!"
End Sub
 
Bonjour,

il faut enregistrer ton fichier en xlsm. copie/colle ce code dans un module standard et tu l’exécutes (F5)
VB:
Option Explicit
Sub Comparer_Reporter_BenC()
    Dim wsSource As Worksheet, wsCible As Worksheet
    Dim dlSource As Long, dlCible As Long
    Dim i As Long, j As Long
    
    ' Définir les feuilles source et cible
    Set wsSource = ThisWorkbook.Sheets("source")
    Set wsCible = ThisWorkbook.Sheets("cible")
    
    ' Trouver la dernière ligne de chaque feuille
    dlSource = wsSource.Cells(wsSource.Rows.Count, "B").End(xlUp).Row
    dlCible = wsCible.Cells(wsCible.Rows.Count, "C").End(xlUp).Row
    
    ' Boucle à travers chaque ligne de la feuille source
    For i = 1 To dlSource
        ' Boucle à travers chaque ligne de la feuille cible
        For j = 2 To dlCible ' Commencer à 2 pour ignorer la ligne des titres
            ' Comparer les valeurs
            If wsSource.Cells(i, "B").Value = wsCible.Cells(j, "C").Value Then
                ' Si égal, reporter la valeur de la colonne B de la feuille cible dans la colonne C de la feuille source
                wsSource.Cells(i, "C").Value = wsCible.Cells(j, "B").Value
                Exit For ' Sortir de la boucle si une correspondance est trouvée
            End If
        Next j
    Next i
    
    MsgBox "Mise à jour terminée dans la colonne C!"
End Sub

Salut cathodique.
Merci à toi. Je vais tester ça.
 
- 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
13
Affichages
395
Réponses
4
Affichages
178
Retour