Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

stockage les lignes d'une feuille ds une variable

AGLAS

XLDnaute Nouveau
Bonjour le forum,

Je cherche le moyen de stocker dans une variable une collection de lignes d'une feuille de classeur. Etant donné que les lignes de la feuille en question sont parcourues au travers d'une boucle de recherche qui conditionne leur insertion dans la variable, j'ai opté pour un tableau de type Range mais je ne suis par sûr de la déclaration et visiblement je m'y prends mal vu que ça plante. Le but de la manoeuvre, c'est de travailler ensuite sur ces lignes mémoires et les supprimer au fur et à mesure de l'exécution du traitement, sans affecter les données effectivement présentent sur la feuille (ci-après le code posant pb). Un avis aux connaisseurs donc.... Merci bcp pour votre aide.

Code:
    Dim i, k, j As Integer
    Dim C As Range
    'affects() stocke les lignes
    Dim affects() As Range
    
    j = 0
    i = 0
    With Worksheets('Affectations').Columns(5)
        Set C = .Find(Numtask, LookIn:=xlValues, LookAt:=xlWhole)
        If Not C Is Nothing Then
            j = C.Row
            Do
                ReDim Preserve affects(i)
                'stockage ligne courante <- BUG !
                affects(i) = Worksheets('Affectations').Rows(j)
                i = i + 1
                j = j + 1
            Loop While Worksheets('Affectations').Cells(j, 5).Value = Numtask
        End If
    End With
 
B

bebere

Guest
bonjour Aglas

Dim Affects() As Variant'ou bien as string
redim Preserve affects(i)
'stockage ligne courante <- BUG !
affects(i) = Worksheets('Affectations').Rows(j)
i = i + 1
à bientôt
 

AGLAS

XLDnaute Nouveau
Re:stockage les lignes d'une feuille ds une variab

Bonjour le forum, bebere,

Merci une fois de plus bebere, je n'étais pas certain que cela soit possible en fait, mais il demeure tout de même un pb ; lorsque ma variable tableau Affect() de type Variant est vide (qu'aucune valeur initiale n'a été affectée) et qu'elle se trouve soumise à traitement du type For k = 0 To UBound(Affects()) ça plante de nouveau. J'ai essayé If Affects(0).Value <> Empty Then Exit Sub mais cela ne marche pas non plus, aurais-tu une idée sur la manière de procéder ?
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…