Menu

Modification Macro VBA

- - Dernière réponse : eriiic
Messages postés
22668
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
19 avril 2019
- 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
Afficher la suite 

Votre réponse

2 réponses

Messages postés
5991
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
19 avril 2019
420
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??
Commenter la réponse de cs_Le Pivert
Messages postés
22668
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
19 avril 2019
7333
0
Merci
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
Commenter la réponse de eriiic