Modification Macro VBA [Fermé]

Signaler
-
Messages postés
23384
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
12 juillet 2020
-
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

Messages postés
6831
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
10 juillet 2020
532
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??
Messages postés
23384
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
12 juillet 2020
6 237
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

En essayant continuellement, on finit par réussir. 
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci