VBA sous Excel

Résolu
Pascall -  
 Pascall -
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

3 réponses

  1. pilas31 Messages postés 1878 Statut Contributeur 648
     
    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
  2. Utilisateur anonyme
     
    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
    1. pilas31 Messages postés 1878 Statut Contributeur 648
       
      Salut,

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

      Cdlt
      0
    2. Utilisateur anonyme
       
      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
    3. pilas31 Messages postés 1878 Statut Contributeur 648
       
      Bien vu...

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

    Pascal
    0