Comparer cellules de deux colonnes vba

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

mgrizzly

XLDnaute Junior
Bonjour,

Je souhaite comparer les cellules de deux colonnes en VBA sous excel.

J'ai la colonne B où les noms sont déja insrits et la colonne K où je voudrais qur l'utilisateur rentre des noms et valide ces noms en cliquant sur un bouton. Si un nom est le même alors je voudrais vcerrouiller la ligne de la cellule de la colonne B. Ce que j'ai fait ne marche pas.

Voila mon code :

Sub Comparaison()

Dim VALEURA As String, VALEURB As String

For i = 9 To 59
VALEURA = Range("B" & i).Value
For j = 9 To 59
VALEURB = Range("K" & j).Value
If VALEURA = VALEURB Then
Worksheets("Compétences").Activate
Worksheets("Compétences").VALEURA.Select
Rows(ActiveCell.Row).Select
Selection.Locked = True
End If
Next j
Next i

End Sub

Merci de m'aider, il n'y a pas d'erreur dans le code mais rien ne se passe quand je clique sur le bouton.
 
Re : Comparer cellules de deux colonnes vba

Bonjour mgrizzly, bonjour à toutes et à tous 🙂

mgrizzly à dit:
Je souhaite comparer les cellules de deux colonnes en VBA sous excel.

J'ai la colonne B où les noms sont déja insrits et la colonne K où je voudrais qur l'utilisateur rentre des noms et valide ces noms en cliquant sur un bouton. Si un nom est le même alors je voudrais vcerrouiller la ligne de la cellule de la colonne B. Ce que j'ai fait ne marche pas.

Voila mon code :

Sub Comparaison()

Dim VALEURA As String, VALEURB As String

For i = 9 To 59
VALEURA = Range("B" & i).Value
For j = 9 To 59
VALEURB = Range("K" & j).Value
If VALEURA = VALEURB Then
Worksheets("Compétences").Activate
Worksheets("Compétences").VALEURA.Select
Rows(ActiveCell.Row).Select
Selection.Locked = True
End If
Next j
Next i

End Sub

Merci de m'aider, il n'y a pas d'erreur dans le code mais rien ne se passe quand je clique sur le bouton.

Il est normal que rien ne se passe car VALEURA contient une $tring.

Sans filet, sans fichier, essaie ce bout de code et tiens-nous au courant :

Code:
Option Explicit

Sub Comparaison()
'
Dim VALEURA As String, ShComp As Worksheet
Dim i As Long
'
Set ShComp = Sheets("Compétences")

For i = 9 To 59

VALEURA = Range("B" & i).Value

With Application.WorksheetFunction

  If .CountIf(Range(Cells(9, "B"), Cells(59, "B")), VALEURA) > 0 Then
    ShComp.Range("A" & i).EntireRow.Locked = True
  End If
  
End With

Next i

ShComp.Protect

End Sub

@+
 
Re : Comparer cellules de deux colonnes vba

Merci kjin,
C'est tout à fait ce que je recherche sauf qu'à la place du msg je voudrais verrouiller la ligne où la cellule de la colonne B est la même que pour la cellule de la colonne K.
C'est pour un planning de congés du personnel (quand une personne est en congé la mettre dans la colonne K et ainsi elle se retrouve bloqhé dans la colonne B et sur la ligne, ainsi elles ne fera plus partie du roulement des agents).
 
Re : Comparer cellules de deux colonnes vba

Re,
Macro2 ne sert à rien tu peux supprimer (reliquat de test)
Code:
'Si la colonne cible n'est pas la colonne 11 (donc K) on quitte la procédure
If Target.Column <> 11.... Then Exit Sub
A+
kjin
 
Re : Comparer cellules de deux colonnes vba

Re mgrizzly et kjin, bonjour à toutes et à tous 🙂

mgrizzly à dit:
Sinon kjin,
Voilà mon fichier, tu peux regarder pourquoi ton code que j'ai mis dedans ne marche pas?
Merci beaucoup.

Le code que tu a mis dedans est celui de kjin, et il fonctionne ainsi :

Si dans la colonne K on inscrit une valeur que l'on peut trouver également en colonne B, alors la ligne correspondante de la colonne B est verrouillée ; pas celle de la colonne K mais tes premières explications :

mgrizzly à dit:
If VALEURA = VALEURB Then
Worksheets("Compétences").Activate
Worksheets("Compétences").VALEURA.Select
Rows(ActiveCell.Row).Select
Selection.Locked = True

laissaient entendre que c'est bien la colonne de "VALEURA", i.e. la colonne B que tu souhaitais verrouiller.

Si ce n'est pas ça, explique plus précisément ta demande, quelle ligne veux-tu bloquer exactement ?

@+
 
- 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
8
Affichages
243
Réponses
4
Affichages
436
Réponses
5
Affichages
568
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
747
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
313
Réponses
3
Affichages
779
Réponses
3
Affichages
704
Retour