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

XL 2013 Redim Preserve Variable Tableau Emboité = Erreur 9 (Indice hors plage)

laurent950

XLDnaute Barbatruc
Bonsoir,
Ps : Pefixe Excel 2013 (Mais ce code est compatible toutes version Excel)
En Détaillant la problématique ci dessous :
* J'ai juste une ligne de code que je n'arrive pas à faire fonctionner.
' Indice hors plage (Erreur 9) --- Essayer de d'ajouter une colonne suplémentaire directement !
ReDim Preserve Cls_TabBase(LBound(TabBase(i), 1) To UBound(TabBase(i), 1), LBound(TabBase(i), 2) To UBound(TabBase(i), 2) + 1)
' Solution pour contourner se probléme :

TabTemp = TabBase(i)
ReDim Preserve TabTemp(LBound(TabTemp, 1) To UBound(TabTemp, 1), LBound(TabTemp, 2) To UBound(TabTemp, 2) + 1)
TabBase(i) = TabTemp

' Pour Voir l'anomalie et l'erreur dans le code :
Décoché la ligne en Rouge pour voir la ligne d'arret du code Bug erreur 9
ReDim Preserve Cls_TabBase(LBound(TabBase(i), 1) To UBound(TabBase(i), 1), LBound(TabBase(i), 2) To UBound(TabBase(i), 2) + 1)
ps : Elle est coché volontairement dans le code pour monter que cela fonctionne avec la solution de contournement.

' J'ai détailler tous le processe ci-dessous ! ainsi que le code que j'ai documenté.

' Ci-vous avez une idée avec un grand plaisir car je suis bloqué ici sur cette ligne qui devrait fonctionner !

VB:
Option Base 1
Sub test()
Dim TabBase() As Variant
Dim TabTemp() As Variant
' Base et resultat
    ' Tableau 1 dimension de 57 Case "FiXE" = Aux 57 --> Index
        ' Dimension 1 Case (Avec Option Base 1) pour commencer à 1
            ReDim TabBase(1)
' Suite a cela je fais une boucle pour le nombre de colonne à Remplire (Soit 57)
    For i = 1 To 57
    ' Ici je m'arrete a la colonne Numéro 3 pour test (Ensuite je sort de la procédure for)
    If i > 3 Then Exit For
        ' Le but :
        '   Chacune de ces 57 Colonnes contiennent des nombres :
        '       * Chacune de ces colonnes ne sont pas de longeur fixe :
        '           * Exemple la colonne 1 = B aura par exemple 488 Lignes / Donc ligne 15  à 503
        '           * Exemple la colonne 2 = C aura par exemple 466 Lignes / Donc Ligne 37  à 503
        '           * Exemple la colonne 3 = D aura par exemple 377 Lignes / Donc Ligne 126 à 503
' le soucis = Une deuxiéme plage à récupérer
'       ' Explication = il y a une date pour chacunes des valeurs :
'       '   * Soit l'exemple ci-dessus :
'       '       * Exemple la colonne 1 = B aura par exemple 488 Lignes / Donc ligne 15  à 503
'       '           * deux plages :
'       '               '   Colonne A qui contient les dates et donc :
'       '               '   Plage aura date   488 Lignes / Donc ligne 15  à
'       '               '   Plage aura Valeur 488 Lignes / Donc ligne 15  à 503
' *****************************************************************************************************
'       '       * Exemple la colonne 2 = C aura par exemple 466 Lignes / Donc Ligne 37  à 503
'       '           * Même procéder que ci-dessus.
'******************************************************************************************************
' Suite du code
        ' Du haut Colone 1 = B pour i (Ligne 2) descente vers le bas (Premiere non vide = Depart du tableau)
            pr = Cells(Cells(2, i + 1).End(xlDown).Row, i + 1).Row
        ' Je consigne la premiere colonne comme l'exemple ci-dessus (Pour les dates) / Tojours la colonne 1
            TabBase(i) = Range(Cells(pr, 1), Cells(503, 1)) ' pr premiere non vide ligne 15
        ' ça y est j'ai mon premier tableau 2 dimension dans ma variable tableau 1 dimension
        '   Variable tableau 1 Dimension soit : TabBase
        '   Variable tableau 2 Dimension soit : TabBase(i)(1)
        ' A présent je veux Créer une seconde colonne de mon tableau 2 dimension (Pour y ajouter les valeurs)
        ' Donc
        ' avec redim preserve je vais y ajouter une colonne suplémentaire (Pour en avoir 2) au lieux d'une seule
        ' Pour Info
        ' debug.print LBound(TabBase)       / La premiere ligne   de mon tableau 1 dimension
        ' debug.print UBound(TabBase)       / La derniere ligne   de mon tableau 2 dimension
        ' debug.print LBound(TabBase(i), 1) / La premiere ligne   de mon tableau 2 dimension
        ' debug.print UBound(TabBase(i), 1) / La derniere ligne   de mon tableau 2 dimension
        ' debug.print LBound(TabBase(i), 2) / La premiere colonne de mon tableau 2 dimension
        ' debug.print UBound(TabBase(i), 2) / La derniere colonne de mon tableau 2 dimension
      
        ' Indice hors plage (Erreur 9) --- Essayer de d'ajouter une colonne suplémentaire directement !

' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
'
'                     CORRECTION : REDIM PRESERVE VARIABLE TABLEAU EMBOITE / Indice hors plage (Erreur 9)
'                     ReDim Preserve TabBase
'
'   ReDim Preserve TabBase(LBound(TabBase(i), 1) To UBound(TabBase(i), 1), LBound(TabBase(i), 2) To UBound(TabBase(i), 2) + 1)
'
' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

        ' Solution transitoire à évité avec la ligne de code ci-dessus à faire fonctionner
        ' En attente ! Astuce de transfert
          
            TabTemp = TabBase(i)
            ReDim Preserve TabTemp(LBound(TabTemp, 1) To UBound(TabTemp, 1), LBound(TabTemp, 2) To UBound(TabTemp, 2) + 1)
            TabBase(i) = TabTemp
        ' Fin du transfert et l'ajout de la colonne suplémentaire
        ' Suite du code ci-dessous
        '   Etape pour Remplire la variable tableau (de la colone ajouté)
                For j = LBound(TabBase(i), 1) To UBound(TabBase(i), 1)
                    TabBase(i)(j, 2) = Cells(j + (pr - 1), i + 1)
                Next j
        ' Fin de remplissage du tableau 2 dimenssion avec respectivement :
        '   ' Une colonne date
        '   ' La colonne créer (En Attente d'astuce) avec les valeurs ajouté
        ' Création d'une nouvelle case du Tableau 1 dimension pour :
        '   * repeter les opération ci-dessus pour les 56 colonnes restantes (Respectivement avec les dates)
        ' Utilisation de Redim Preseve pour ajouter une nouvelle case a cette variable tableau
                ReDim Preserve TabBase(UBound(TabBase) + 1)
    Next i

' Suppression de la derniere case du tableau 1 dimension inutile
    ReDim Preserve TabBase(UBound(TabBase) - 1)
' FIN DU CODE

' Resultat
'       * 1 tableau 1 dimension de 57 Cases
'               * Chacune des cases contients un tableau 2 Dimensions.
End Sub

Merci Laurent
 

Pièces jointes

  • Redim Preserve Variables Tableaux Emboitées Erreur 9.xlsm
    34.7 KB · Affichages: 18

laurent950

XLDnaute Barbatruc
Aie Aie Aie, c'est un vrais labyrinthe tous cela mais tu est un vrais champion même avec un télescope je n'aurais pas vu tous cela ! Alors je stoppe toutes les machines et je m'arrête sur cette dernière Option en Poste #13 (Bon pas Mal l'idée quand même pour le stockage !)

Franchement Merci patrick car tu ne t’arrête à des simple explication et tu arrives à démontrer les choses, c'est pertinent et précis.

Mille Merci Patrick
Ps : Fin de se poste résolu par PATRICKTOULON
laurent
 
Dernière édition:

eriiic

XLDnaute Barbatruc
Bonjour à tous,

tu m'as peut-être semé mais je tente quand même.
J'ai l'impression que tu te compliques la vie...
En résumé tu veux un tableau1 remplis de tableaux2 qui de toute façon feront tous à terme 2 dimensions.
Et bien crée-les 2D tout de suite :
VB:
Sub test2()
    Dim TabBase(), i As Long, j As Long, tmp
    'ReDim TabBase(1 To 1)
    For i = 1 To 3 ' 57
        ReDim Preserve TabBase(1 To i)
        '2 lignes récupées au lieu de 488 ou autre, reculer B15:C16 pour chaque TabBase(i)
        ' données
        TabBase(i) = [B15:C16].Value 'lecture en 1 fois. Seule B nous intéresse, la 2nde colonne est prête pour les dates
        ' dates
        tmp = [A15:A16].Value ' ici aussi lecture plage en 1 fois
        For j = 1 To UBound(tmp)
            TabBase(i)(j, 2) = tmp(j, 1) ' on récupère la 2nde colonne pour les dates
        Next j
    Next i
End Sub

te donne ça :

Ca ressemble à ce que tu veux (à 500 lignes près...) ?
Sinon décris plus et met une capture de ton tableau
eric

PS : pour faire un Redim Preserve d'un tableau dans un autre, pour l'instant je n'y arrive qu'en passant par un type personnalisé.
 
Dernière édition:

laurent950

XLDnaute Barbatruc
Bonjour Eric, Staple1600, Patricktoulon, le Forum !
Merci pour ta réponse Eric qui est vraiment très sympa de ta part de intéresser à mon sujet.
Alors pour te répondre :
1) J'ai l'impression que tu te compliques la vie... = Oui je me complique la vie et Non autrement dit (c'est compliqué juste au départ mais tellement plus facile à la fin) / Je posterais le sujet tu en sera surpris.
2) En résumé tu veux un tableau1 remplis de tableaux2 /
* oui je veux créer un tableau 1 dimension de 3 Cases comme dans l'exemple ci-dessous :
* ReDim Preserve TabBase(1 To i) / ici i = 3 (Utilisation de option base 1)
* est effectivement je veux y stocké des tableau 2 dimensions comme dans ton exemple
* TabBase(i) = [B15:C16].Value / soit 1 Tableaux 2 D pour le premier indice i = 1
3) Alors Justement :
* Dans ton exemple tableau 2 D la plage de récupération est la plage des colonnes :
B et C = C'est colonne sont contiguë donc très bien.
* TabBase(i) = [B15:C16].Value / = OK
* Dans un autres exemple tableau 2 D la plage de récupération est la plage des colonnes
A et C = C'est colonne sont non contiguë donc très bien.
* TabBase(i) = [???????].Value / = Comment pour A et C (Sans la colonne B)
* TabBase(i) = Range("a15:16,c15:c16") = Faux

4 ) Voici la solution : (Sauf une variable a essaie de faire passé et je sais pas ! )
Col = est le numéro de colonne pour :
TabBase(1) = Application.Index(.Value, Evaluate("ROW(1:" & .Rows.Count & ")"), [{1,Col}]) / Col = 2
TabBase(2) = Application.Index(.Value, Evaluate("ROW(1:" & .Rows.Count & ")"), [{1,Col}]) / Col = 3
TabBase(3) = Application.Index(.Value, Evaluate("ROW(1:" & .Rows.Count & ")"), [{1,Col}]) / Col = 4

Ps : Erreur pour cette variable écrit comme cela = Erreur 2015


Maintenant sans Variable Col = Ecrit en dur
TabBase(1) = Application.Index(.Value, Evaluate("ROW(1:" & .Rows.Count & ")"), [{1,2}]) /Ecrit en dur
TabBase(2) = Application.Index(.Value, Evaluate("ROW(1:" & .Rows.Count & ")"), [{1,3}]) /Ecrit en dur
TabBase(3) = Application.Index(.Value, Evaluate("ROW(1:" & .Rows.Count & ")"), [{1,4}]) /Ecrit en dur

Ps : Cela Fonctionne Bien ! mais écrit 3 fois a chaque tour de boucle pour 2 / 3 et 4 d'ou la variable Col = Pour colonnes (A récupérer qui sont Non Contiguë !


Comment écrire cette Ligne :
TabBase(i) = Application.Index(.Value, Evaluate("ROW(1:" & .Rows.Count & ")"), [{1,Col}])

et donc :
Voila le soucis
VB:
           With Range(Cells(pr, 1), Cells(503, i + 1))
                Col = i + 1
                TabBase(i) = Application.Index(.Value, Evaluate("ROW(1:" & .Rows.Count & ")"), [{1,Col}])
            End With

Comment evité cela : Erreur2015 avec cela
              [{1,Col}]    si col = 2 / ou [{1,Col}]    si col = 3 / [{1,Col}]    si col = 4
              C'est a dire c'est des numéro de colonnes / Colonne 2 Ou 3 Ou 4
mais si
              [{1,2}]  si 2 écrit en dur / ou [{1,3}] si 3 écrit en dur / [{1,4}] si 4 écrit en dur
              Alors cela fonctionne impeccable !

' Le Site de la solution : Variable Tableau : récupérer une plage multiple Non Contigue
VB:
Option Base 1
Sub test()
Dim TabBase() As Variant
    ReDim TabBase(1)
Dim Col As Variant
Dim TabTemp() As Variant
    For i = 1 To 3
        pr = Cells(Cells(2, i + 1).End(xlDown).Row, i + 1).Row
            With Range(Cells(pr, 1), Cells(503, i + 1))
                Col = i + 1
                TabBase(i) = Application.Index(.Value, Evaluate("ROW(1:" & .Rows.Count & ")"), [{1,Col}])
            End With
        ReDim Preserve TabBase(UBound(TabBase) + 1)
    Next i
'
ReDim Preserve TabBase(UBound(TabBase) - 1)
End Sub

Merci a toi Eric, et aussi à Patricktoulon qui a beaucoup contribué sans oublié Staple1600 qui a souvent des belles idées et solutions aussi
.
quelques site de recherche : (Pas de solution valable sur les sites si dessous)
' ********************************************************************************************************
Le meilleur pour la solution sans Boucle évoqué plus haut :

Ps : C'est quand même assez technique !

Laurent950
 

Pièces jointes

  • 1586691075750.png
    36.9 KB · Affichages: 17
Dernière édition:

patricktoulon

XLDnaute Barbatruc
bonjour l'aurent
* TabBase(i) = [???????].Value / = Comment pour A et C (Sans la colonne B)
héhéhé!!!
un exemple sans boucle histoire de faire sortir a la lumiere
VB:
Sub test()
Set plage = [A1:C1000]
 ligne = 1
 arrcolumns = Array(1, 3)
 tb = Application.Index(plage.Value, Evaluate("ROW(1:" & plage.Rows.Count & ")"), arrcolumns)    'mettre les colonnes que l'on veut dans l'ordre voulues
 MsgBox UBound(tb) & " lignes et " & UBound(tb, 2) & " colonnes"
End Sub
allez va dans ta pharmacie et prend ta boite de doliprane
 

laurent950

XLDnaute Barbatruc
Patrick tu as trouvé la solution tu es pas fort, tu es hyper fort incroyable, le top du top... même avec une pharmacie de doliprane je serais incapable de trouver cela... peux être si j’achète directement l'usine qui tourne à plein régime

Solution Trouvé par patricktoulon : magnifique est incroyable au sommet de la performance

VB:
Option Base 1
Sub test1()
Dim i As Integer: i = 1
Dim TabBase() As Variant
    ReDim TabBase(i)
' ici pour Application.Index ci-dessous variable "arrcolumns"
Dim arrcolumns As Variant
    For i = 1 To 57
        pr = Cells(Cells(2, i + 1).End(xlDown).Row, i + 1).Row
        ' Copier des Colonne Non Contigue
            With Range(Cells(pr, 1), Cells(503, i + 1))
                 arrcolumns = Array(1, i + 1)
                 ' ici recupérations des plages Non Contiguës
                 TabBase(i) = Application.Index(.Value, Evaluate("ROW(1:" & .Rows.Count & ")"), arrcolumns)
            End With
        ' Fin de recopie des colonnes non contiguës
        ReDim Preserve TabBase(UBound(TabBase) + 1)
    Next i
'
ReDim Preserve TabBase(UBound(TabBase) - 1)
End Sub

explication de cette ligne : Solution de Patricktoulon (Merci Patrick)
Application.Index(.Value, Evaluate("ROW(1:" & .Rows.Count & ")"), arrcolumns)
application index ( la plage entiere ,(de la ligne 1 a la dernière lignede la plage ), et les colonnes de l'array
Ps : cela fonctionne parfaitement vraiment top
laurent
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
allez celle la elle te met par terre et te fini définitivement

certaines lignes dans le désordre et certaines colonne dans le désordre
VB:
With [A1:G20]
    tb = Application.Index(.Value, [{7;2;15;5}], Array(1, 4, 7, 2))
 MsgBox UBound(tb) & " lignes et " & UBound(tb, 2) & " colonnes"
End With
pin pon pin pon
 

laurent950

XLDnaute Barbatruc
Hey Hey Hey, tu es pas une lumière tu es un soleil en plus qui brille fort très fort, très très fort.

Bon aller j'ai commencé les doliprane et puis maintenant je vais passer tous cela par un stockage... stocké c'est tableau enfin ce tableau qui en contients plein de tableau 2 D dans un MODULE DE CLASSE, pour compliqué tous cela et même y construire un Userform.

Enfin c'est la suite du projet, de mon projet.

Enfin Incroyable tu es hyper fort, encore des idées qui vont germer dans ma tête pour mon futur développement

Merci Patrick... Patricktoulon the best Of
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, Laurent950, eriiiic, patricktoulon

>•Laurent950
Depuis 2011, bien au chaud, sur le web anglophone
VB:
Function GetArrayFromColumns(SheetName As String, StartRow As Long, ParamArray Cols()) As Variant
  Dim LastRow As Long, C As Variant, Text As String, WS As Worksheet, MyArray() As String
  If SheetName = "" Then SheetName = ActiveSheet.Name
  Set WS = Worksheets(SheetName)
  For Each C In Cols
    LastRow = WS.Cells(Rows.Count, C).End(xlUp).Row
    Text = Text & Chr(1) & Join(WorksheetFunction.Transpose(WS.Range(WS.Cells(StartRow, C), WS.Cells(LastRow, C))), Chr(1))
  Next
  GetArrayFromColumns = Split(Mid(Text, 2), Chr(1))
End Function
VB:
Sub Test()
  Dim Z As Long, MyArray() As String
  MyArray = GetArrayFromColumns("Feuil1", 2, "A", "B", "C", "I", "AU")
  For Z = LBound(MyArray) To UBound(MyArray)
    Debug.Print MyArray(Z)
  Next
End Sub
 
Dernière édition:

laurent950

XLDnaute Barbatruc
J'ai compilé un Fichier Excel :
La Méthode a patricktoulon vs la méthode a Staple1600.

1 ) la Méthode à Patricktoulon c'est de la haute voltige... est fonctionne du Tonnerre

2) La Méthode à Staple1600 aura besoin de dolipranne... hi hi hi Pat-Strike en propose

Bon j'ai mis le fichier a disposition et vos deux codes...
* Comment tu fais fonctionner ton code j'y arrive vraiment pas ?

VB:
' Staple1600
Function GetArrayFromColumnsStap1600(SheetName As String, StartRow As Long, ParamArray Cols()) As Variant
  Dim LastRow As Long, C As Variant, Text As String, WS As Worksheet, MyArray() As String
  If SheetName = "" Then SheetName = ActiveSheet.Name
  Set WS = Worksheets(SheetName)
  For Each C In Cols
    LastRow = WS.Cells(Rows.Count, C).End(xlUp).Row
    Text = Text & Chr(1) & Join(WorksheetFunction.Transpose(WS.Range(WS.Cells(StartRow, C), WS.Cells(LastRow, C))), Chr(1))
  MsgBox Text
  Next
  GetArrayFromColumns = Split(Mid(Text, 2), Chr(1))
End Function
VB:
' Staple1600
Sub testStaple1600()
  Dim Z As Long, MyArray() As String
  MyArray = GetArrayFromColumnsStap1600("Feuil1", 2, "A", "B", "C", "I", "AF")
  For Z = LBound(MyArray) To UBound(MyArray)
    Debug.Print MyArray(Z)
  Next
End Sub
' *************************************************************************************************************************
' *************************************************************************************************************************
VB:
'PatrickToulon
' Option Base 1
Function GetArrayFromColumnsPatrickToulon(ByVal Rgn As Range, ByVal arrcolumns As Variant, ByVal i As Integer, ByRef TabBase() As Variant)
    With Rgn
        TabBase(i) = Application.Index(.Value, Evaluate("ROW(1:" & .Rows.Count & ")"), arrcolumns)
    End With
End Function
VB:
'PatrickToulon
Sub testPatrickToulon()
' Fonctionne Impecable !
Dim TabBase() As Variant
Dim i As Integer: i = 0
    ReDim TabBase(i)
'
Dim Pr As Long
Dim Rgn As Range
Dim arrcolumns As Variant
'
    For i = 1 To 3       ' Pour la A / B / C
        arrcolumns = Array(1, i + 1)
        Pr = Cells(Cells(2, i + 1).End(xlDown).Row, i + 1).Row
        Set Rgn = Range(Cells(Pr, 1), Cells(503, i + 1))
        ' Fonction
        GetArrayFromColumnsPatrickToulon Rgn, arrcolumns, (i - 1), TabBase
        ReDim Preserve TabBase(UBound(TabBase) + 1)
    Next i
    ReDim Preserve TabBase(UBound(TabBase) - 1)
    
    ' Pour exemple Staple1600
    ' Ajout de la Colonne I =9 et AU = 47
        Pr = Cells(Cells(2, i + 1).End(xlDown).Row, i + 1).Row
        ReDim Preserve TabBase(UBound(TabBase) + 2)
    ' Fonction Colonne I =9
        GetArrayFromColumnsPatrickToulon Range(Cells(Pr, 1), Cells(503, 9)), Array(1, 9), 3, TabBase
    ' Fonction Colonne AU = 47
        GetArrayFromColumnsPatrickToulon Range(Cells(Pr, 1), Cells(503, 47)), Array(1, 47), 4, TabBase
        
' Lecture
  For Z = LBound(TabBase) To UBound(TabBase)
    For y = LBound(TabBase(Z), 1) To UBound(TabBase(Z), 1)
        Debug.Print TabBase(Z)(y, 1): A = TabBase(Z)(y, 1)
        Debug.Print TabBase(Z)(y, 2): B = TabBase(Z)(y, 2)
        Debug.Print A & " / " & B
    Next y
  Next Z
End Sub
 

Pièces jointes

  • Staple 1600 vs PatrickToulon Redim Preserve Variables Tableaux Emboitées Erreur 9.xlsm
    158.2 KB · Affichages: 3

Staple1600

XLDnaute Barbatruc
Re

•>Lauren950
Petite précision (pour lecteur distrait )
Comme je l'ai écrit, ce code n'est absolument pas de moi.
(cf message#26)
Néanmoins, confinement oblige, je vais te concocter un exemple d'utilisation
 

patricktoulon

XLDnaute Barbatruc
puré je vais lui mettre une colle a celui là
For i = 1 To 3 ' Pour la A / B / C
arrcolumns = Array(1, i + 1)
Pr = Cells(Cells(2, i + 1).End(xlDown).Row, i + 1).Row

donc
tblo(1) sera A:B de ligne 2 a end de B
tblo(2) sera A:C de ligne 2 a end de C
tblo(3)sera "A: D" de ligne 2 a end de D

IL t'est pas venu a l'idée que A pouvait être plus long que B/C/D

TU A UNE COLONNE QUI EST COMMUNNE SERT TOI EN!!

si c'est pas ca fait attention
dans une fonction générique on doit tout prévoir
 

Staple1600

XLDnaute Barbatruc
Re

•>Laurent950
Donc voici l'exemple promis
VB:
Sub testStaple1600()
Dim Z As Long, MyArray() As String, vArray() As String
Sheets.Add(, Sheets(Sheets.Count)).Name = "Laurent950"
Sheets("Laurent950").Range("A1:G5") = "=ADDRESS(ROW(),COLUMN(),4)"
MyArray = GetArrayFromColumns("Laurent950", 2, "C", "E", "G")
Sheets("Laurent950").[K1].Resize(UBound(MyArray) + 1) = Application.Transpose(MyArray)
vArray = GetArrayFromColumns("Laurent950", 4, "B", "D", "F")
Sheets("Laurent950").[A7].Resize(, UBound(vArray) + 1) = vArray
End Sub
1) Faire les ajustements nécessaires avant de lancer le test
2) Si j'étais moi, je sais ce qu'il faudra faire avant de lancer le test plusieurs fois de suite
 

Discussions similaires

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