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

Comparer cellules de deux colonnes vba

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.
 

nolich

XLDnaute Occasionnel
Re : Comparer cellules de deux colonnes vba

Bonjour mgrizzly, bonjour à toutes et à tous


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

@+
 

kjin

XLDnaute Barbatruc
Re : Comparer cellules de deux colonnes vba

Bonjour,
En attendant quelques éclaircissements quand à ce que veut dire verrouiller
A+
kjin
 

Pièces jointes

  • mgrizzli.xls
    18.5 KB · Affichages: 145

mgrizzly

XLDnaute Junior
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).
 

kjin

XLDnaute Barbatruc
Re : Comparer cellules de deux colonnes vba

Re,
Pas vraiment sûr de comprendre ce que tu souhaites faire
Pour verrouiller il faut forcément protéger ta feuille
A+
kjin
 

Pièces jointes

  • mgrizzli_V2.xls
    22.5 KB · Affichages: 105

mgrizzly

XLDnaute Junior
Re : Comparer cellules de deux colonnes vba

J'ai pas compris à quoi servait macro2 et comment sais-tu que c'est dans la colonne K que tu dois rentrer les lettres, dans ton code?
Merci de me répondre
 

kjin

XLDnaute Barbatruc
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
 

mgrizzly

XLDnaute Junior
Re : Comparer cellules de deux colonnes vba

OK kjin,
Autre petite question : comment faire si on efface le nom dans la colonne K pour que la ligne se déverrouille?
Merci beaucoup de m'aider!
 

mgrizzly

XLDnaute Junior
Re : Comparer cellules de deux colonnes vba

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

Pièces jointes

  • congés.xls
    27.5 KB · Affichages: 128
  • congés.xls
    27.5 KB · Affichages: 143
  • congés.xls
    27.5 KB · Affichages: 139

nolich

XLDnaute Occasionnel
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 ?

@+
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…