Modification Macro VBA

Fermé
Fanaouer - 15 avril 2019 à 11:54
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 - 15 avril 2019 à 14:29
Bonjour à tous,

Je vais essayer d'être le plus claire possible.

J'aimerais modifier cette macro en remplacent Inputbox qui me permet de selectionner les plages à comparer, par les plages en question.

C'est à dire supprimer cette étape en intégrant directement les plages concerné car celle-ci ne change pas.

Merci d'avance pour vos réponse.

Ci-dessous la macro concernée






Dim Range1 As Range, Range2 As Range, Rng1 As Range, Rng2 As Range, outRng As Range
xTitleId = "KutoolsforExcel"
Set Range1 = Application.Selection
Set Range1 = Application.InputBox("Range1 :", xTitleId, Range1.Address, Type:=8)
Set Range2 = Application.InputBox("Range2:", xTitleId, Type:=8)
Application.ScreenUpdating = False
For Each Rng1 In Range1
xValue = Rng1.Value
For Each Rng2 In Range2
If xValue = Rng2.Value Then
If outRng Is Nothing Then
Set outRng = Rng1
Else
Set outRng = Application.Union(outRng, Rng1)
End If
End If
Next
Next
outRng.Select
Selection.ClearContents
Application.ScreenUpdating = True

2 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
15 avril 2019 à 12:00
0
Merci pour votre réponse, mais j'ai essayé d'intégrer "ActiveSheet.Range("C2:D10").Select".

a cette endroit:

Set Range1 = Application.Selection
Set Range1 = ActiveSheet.Range("C2:c10").Select Application.InputBox("Range1 :", xTitleId, Range1.Address, Type:=8)
Set Range2 = ActiveSheet.Range("d2:D10").Select Application.InputBox("Range2:", xTitleId, Type:=8)

En supprimant ce qui est en italque.

Mais cela me dit qu'il manque un objet??
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 213
Modifié le 15 avril 2019 à 14:31
Bonjour,

Set Range1 = Range("C2:c10") 

par défaut c'est ActiveSheet
ou
Set Range1 = Sheets("ta_feuille").Range("C2:c10")

si elle est fixe et risque de ne pas être active.

Set Range1 = Application.Selection correspond à la sélection en cours. Donc c'est soit ça, soit un range fixe, pas les deux.
eric

0