VBA sous Excel

Résolu/Fermé
Pascall - 26 mars 2012 à 15:44
 Pascall - 26 mars 2012 à 20:34
Bonjour,

Je souhaiterai pouvoir capter un range dont les limites ont été défini
par une recherche dans une table via une boucle DO .... LOOP UNTIL
dim MaPlage as range
dim i,nomatch integer
i = 1
nomatch=15
Do
i = i + 1
Loop Until Worksheets("FIND").Range("A" & i).Value = nomatch
selcellule = """" & "A" & CStr(i) & ":" & "H" & CStr(i) & """" 'Range de référence dans FIND

Pas problème, la variable selcellule comporte bien la valeur range à sélectionner.
Par exemple "A3:H3"
mais quand je souhaite placer le contenu dans une variable ou une autre table ou ou un autre endroit dans la table; je coince
voici ce que j'ai mis
MaPlage = Worksheets("FIND").Range(selcellule).Value


Pouvez-vous m'aider SVP
Merci
PL



A voir également:

3 réponses

pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 645
26 mars 2012 à 18:38
Bonjour,

Je vois deux problèmes dans ce code :
D'abord il ne faut pas encadrer l'adresse par des "" et ensuite pour affecter un Range il faut employer l'instruction set.

D'ou le code suivant a essayer :

Dim MaPlage As Range
Dim i, nomatch As Integer
Dim selcellule As String
i = 1
nomatch = 15
Do
i = i + 1
Loop Until Worksheets("FIND").Range("A" & i).Value = nomatch
selcellule = "A" & CStr(i) & ":" & "H" & CStr(i) 
Set MaPlage = Worksheets("FIND").Range(selcellule)


A+
0
Utilisateur anonyme
26 mars 2012 à 18:38
Bonjour,

Et comme ceci :

Option Explicit

Sub Test()

    Dim MaPlage As Range
    Dim i As Integer, nomatch As Integer
    Dim selCellule As String

    i = 1
    nomatch = 15

    Do
        i = i + 1
    Loop Until Worksheets("FIND").Range("A" & i).Value = nomatch

    selCellule = "A" & i & ":" & "H" & i   'Range de référence dans FIND

    Set MaPlage = Worksheets("FIND").Range(selCellule)

End Sub
'



Cdt

Lupin
0
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 645
26 mars 2012 à 18:40
Salut,

Bingo dans la même minute et en plus on est d'accord...

Cdlt
0
re:

en effet, sauf pour la déclaration de la variable i !

Tel que décrit ici :

Dim i, nomatch As Integer

i est déclaré de façon implicite en type Variant.

ex.:

Sub Test()

    Dim i, j As Integer
    Dim Plage As String
    
    Plage = "A1:F3"
    Set i = Range(Plage)
    Set j = Range(Plage) ' Plante sur cette ligne
    
End Sub


Cdt
0
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 645
26 mars 2012 à 19:02
Bien vu...

A+
0
Bonsoir,
Je vous remercie tous pour vos réponses.
Je vais essayer en fin de soirée.
A+

Pascal
0