erreur 2029 lors de la sélection de colonne d'une matrice (VBA)

  • Initiateur de la discussion Initiateur de la discussion Alice1991
  • Date de début Date de début

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 !

A

Alice1991

Guest
Bonjour à toutes et à tous !

Je désire réduire une matrice existante (matrice_TAUX) en sélectionnant les colonnes qui m'intéressent.
La matrice réduite porte le nom de matricej1_3m.
Après l'affectation de cette matrice, je retrouve l'erreur "2029".

Auriez-vous une idée d'où peut provenir l'erreur ?


Code:
Static Sub MemePer_Reducj1j2_3m(nb_pas As Integer, matrice_TAUX As Variant)

Dim matricej2_3m As Variant

Sheets("diffusion_rt").Select

Dim matricej1_3m As Variant
matricej1_3m = Application.Index(matrice_TAUX, [row (1:10)], Array(14, 27, 40, 53, 66, 79, 92, 105, 118, 131, 144, 157, 170, 183, 196, 209, 222, 235, 248, 261))


La matrice réduite devrait être du (1 to 10, 1 to 20) mais elle ne fait que du (1 to 20) avec l'erreur spécifié

Un grand merci d'avance.
Si vous voulez plus d'information, je suis là !
 
Dernière modification par un modérateur:
Re : erreur 2029 lors de la sélection de colonne d'une matrice (VBA)

Bonjour Alice1991, bienvenue sur XLD,

Vous savez Alice, Excel/VBA ne supporte pas le bricolage.

Au point où vous en êtes, vous êtes bien téméraire de vous lancer sur les matrices.

Elles ne sont jamais très faciles à manipuler.

De toute façon pour vous aider il faudra qu'on arrive à comprendre ce que vous voulez faire.

A+
 
Dernière édition:
Re : erreur 2029 lors de la sélection de colonne d'une matrice (VBA) (résolu)

Bonsoir job !

J'ai pu résoudre le problème.
J'ai défini ma plus petite matrice comme ayant le même nombre de ligne que la plus grande et le tour est joué 😉

Bonne soirée (je reviendrai avec d'autres difficultés, sans aucun doute)

Bàt,

Alice
 
Re : erreur 2029 lors de la sélection de colonne d'une matrice (VBA)

Bonjour Alice, le forum,

J'ai voulu en avoir le coeur net et je découvre que ce que vous proposez fonctionne :

Code:
Sub Réduire()
'réduction de matrice à n lignes et 3 colonnes B D F
Dim matrice, n As Byte, reduction
matrice = [A2:G21]
n = 10 'nombre de lignes
reduction = Application.Index(matrice, Evaluate("ROW(1:" & n & ")"), Array(2, 4, 6))
[I2].Resize(n, 3) = reduction 'restitution
End Sub
Voyez le fichier joint.

C'est la 1ère fois que je fais une chose pareille, merci Alice 🙄

A+
 

Pièces jointes

Re : erreur 2029 lors de la sélection de colonne d'une matrice (VBA)

Re,

On peut paramétrer entièrement la macro :

Code:
Private Sub CommandButton1_Click()
Réduire [A2:G21].Value, 12, Array(1, 3, 4, 7)
End Sub

Sub Réduire(matrice, n As Long, col)
'réduction de matrice à n lignes et x colonnes
Dim reduction
reduction = Application.Index(matrice, Evaluate("ROW(1:" & n & ")"), col)
'---restitution---
[I2].Resize(n, UBound(col) + 1) = reduction
[I1].MergeArea.Delete xlToLeft
[I1].Resize(, UBound(col) + 1).Merge
[I1].MergeArea.Borders.LineStyle = xlContinuous
[I1].Interior.ColorIndex = 4
[I1] = "Tableau réduit"
End Sub
Fichier (2).

A+
 

Pièces jointes

Dernière édition:
Re : erreur 2029 lors de la sélection de colonne d'une matrice (VBA)

Re,

Au cas où l'on veut conserver toutes les colonnes, on peut rendre le dernier paramètre Optional :

Code:
Option Base 1

Private Sub CommandButton1_Click()
Réduire [A2:G21].Value, 12
End Sub

Sub Réduire(matrice, n As Long, Optional col)
'réduction de matrice à n lignes et x colonnes
If IsError(col) Then
 ReDim reduction(n, UBound(matrice, 2))
 reduction = matrice
Else
  ReDim reduction(n, UBound(col))
  reduction = Application.Index(matrice, Evaluate("ROW(1:" & n & ")"), col)
End If
'---restitution---
[I:IV].Delete 'RAZ
[I2].Resize(n, UBound(reduction, 2)) = reduction
[I1].Resize(, UBound(reduction, 2)).Merge
[I1].MergeArea.Borders.LineStyle = xlContinuous
[I1].Interior.ColorIndex = 4
[I1] = "Tableau réduit"
End Sub
Fichier (3).

A+
 

Pièces jointes

- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

L
  • Question Question
XL 2013 Aide VBA
Réponses
4
Affichages
1 K
LAC736
L
B
  • Question Question
Réponses
10
Affichages
3 K
Benwill153
B
G
Réponses
17
Affichages
3 K
Retour