Galère sur redimensionnement d'un tableau

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

BenHarber

XLDnaute Occasionnel
Bonjour Le Forum,
Je souhaite utiliser une variable tableau ("monTab2") de x lignes et 5 colonnes.
Le nombre de x lignes dépend d'une boucle : à chaque fois que la condition est satisfaite, le traitement intègre 5 valeurs dans les 5 colonnes de la dernière ligne du tableau et il faut que je redimensionne mon tableau en ajoutant une ligne pour l'enregistrement suivant.

J'ai donc codé :

Dim monTab2() As Integer
Set znBasBurAgts = ActiveWorkbook.Sheets(1).Range("G11:G" & Sheets("Base Agents").Range("G65536").End(xlUp).Row)
w = 0
ReDim Preserve monTab2(w, 5)
For Each cBurAgts In znBasBurAgts
If CONDITION REMPLIE Then
For z = 1 To 5 ' représente les 5 colonnes de monTab2
Select Case z
Case 1 To 3: monTab2(w, z) = cBurAgts.Offset(0, -7 + z)
Case 4: monTab2(w, z) = cBurAgts.Offset(0, -1)
Case 5: monTab2(w, z) = cBurAgts.Offset(0, 23)
End Select
Next z
w = w + 1
ReDim Preserve monTab2(w, 5)
End If
Next cBurAgts

La macro plante car je dois mal utiliser les mots clés Dim + Redim (voire mal déclarer mon tableau en début de procédure ???)

Quelqu'un pourrait-il m'aider ?
Merci d'avance.
Cordialement,
 
Re : Galère sur redimensionnement d'un tableau

Bonjour Pascal et merci pour ta réponse.
J'ai donc tout inversé et, après avoir remodifié mon type de variable tableau (Dim monTab2() As STRING et non Integer !) ça marche nettement mieux !

Question subsidiaire : à la fin de ma procédure, comment dois-je "vider" ma variable monTab2.
En faisant monTab2 = Empty ?

Merci en tout cas pour ta nouvelle collaboration fructueuse !

Cordialement,
 
Re : Galère sur redimensionnement d'un tableau

BenHarber à dit:
Bonjour Pascal et merci pour ta réponse.
J'ai donc tout inversé et, après avoir remodifié mon type de variable tableau (Dim monTab2() As STRING et non Integer !) ça marche nettement mieux !

Question subsidiaire : à la fin de ma procédure, comment dois-je "vider" ma variable monTab2.
En faisant monTab2 = Empty ?

Merci en tout cas pour ta nouvelle collaboration fructueuse !

Cordialement,
Salut
euh... en sortant de la procédure ?
Quand tu utilises des variables objet lourdes en mémoire, il peut être important de les vider, mais (à ma connaissance), le fin de la macro vide de la mémoire les variables (sauf celles qui font appel à d'autres "structures" comme connexion

A+
 
Re : Galère sur redimensionnement d'un tableau

Pascal76 à dit:
Re

Sinon un redim sans preserve t'efface tout ton tableau
Re...
Redim monTab2(0) pour le minimum de place, mais quel est l'interêt ?

surtout que dans la partie transmise, on le charge, mais on ne l'utilise pas

Si le tableau est extrêmement volumineux et que tu as des problèmes de mémoire, peut-être, sinon...

A+
 
Re : Galère sur redimensionnement d'un tableau

re

euh...j'en sais rien 🙂

j'utilise généralement erase lorsque je boucle.

je suppose que vider les tableaux de la mémoire lorsque l'on à plus besoin de ceux-ci en milieu de procédure ne peut etre que bénéfique.

salut
 
Re : Galère sur redimensionnement d'un tableau

'jour Hervé,
Pour moi, c'est un peu pareil : je ne vois pas en quoi le fait de vider les variables qu'on utilise plus ultérieurement serait néfaste sur la fin du déroulement de la procédure.

Dans le cas présent, la macro est destinée à être utilisée par des postes en sites distants et connecté sur notre serveur.
Des expériences similaires m'ont souvent montré qu'il valait mieux travailler sur des fichiers les plus "légers" possibles. Je suppose qu'il en va de même pour le traitement d'une procédure un peu lourde...même si je n'en ai pas la certitude !

Merci beaucoup pour vos réponses qui me sont toujours d'un grand secours.

Cordialement,
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
904
Retour