Création de tableau à partir d'une textbox et d'un autre tableau

Private Sub CommandButton1_Click()

Dim prenom As String

Dim tableau, monTableau

Dim nbLig

'initialisations

prenom = TextBox1

nbLig = 0

ligFin = Worksheets("Base").Range("a" & Rows.Count).End(xlUp).Row

monTableau = Worksheets("Base").Range("a2", "e" & ligFin) 'ton tableau va jusqu'à la colonne e

'pas jusqu'à la colonne M

For i = LBound(monTableau, 1) To UBound(monTableau, 1)

If monTableau(i, 1) = prenom Then

nbLig = nbLig + 1

End If

Next i

If nbLig > 0 Then

ReDim tableau(1 To nbLig, 1 To 5)

'la suite du code

If monTableau(i, 1) = prenom Then

tableau = Range("i,1").Copy.Worksheets("Base").Range("nbLig,1").Worksheets("Test") & Range("i,3").Copy.Worksheets("Base").Range("nbLig,2").Worksheets("Test")

End If

End If

Unload UserForm1

End Sub

Est-ce que qqch comme ça irait ?

Si je veux copier la première colonne et la 3ème du tableau initial dans l'autre tableau sur l'autre feuille ?

Bonjour,

je te conseille d'essayer ton code sur ton fichier avec le pas-à-pas et les espions pour voir si tout se comporte comme voulu, ce sont des outils importants pour coder en VBA, je te passe la documentation:

https://fr.wikiversity.org/wiki/Macros-commandes_VBA/D%C3%A9bogage

Ils parlent visiblement de toutes les erreurs possibles, le débogage en VBA c'est quelque chose que tu fais souvent, parce que parfois tu oublies quelque chose et ça te plante tout, une mauvaise déclaration, une variable qu'on oublie d'incrémenter... tout peut être suivi avec ces outils de débogage

à toi de tester ton code et voir si ça fonctionne comme prévu, si tu veux faire ça sauvagement tu mets un point d'arrêt au End Sub et tu regardes via un espion la valeur de ton tableau résultat pour voir si il contient les bonnes valeurs, si ce n'est pas le cas, c'est que tu as un souci quelque part

Si vraiment tu bloques j'essayerai de te faire avancer, mais il faut que tu t'entraines, c'est aussi pour ton apprentissage

j'ai survolé ton code et je vois déjà quelques erreurs notamment :

tableau = Range("i,1").Copy.Worksheets("Base").Range("nbLig,1").Worksheets("Test") & Range("i,3").Copy.Worksheets("Base").Range("nbLig,2").Worksheets("Test")

tu oublies que tu as déjà un tableau contenant déjà toutes ces informations, et que tu peux les appeler facilement

Revois comment faire appel à une case de ton tableau, pour la modifier ou pour l'utiliser

du genre:

tableau(ligne, colonne) = monTableau(lig, col)

Hello,

Merci pour ton aide, je comprends que je suis un peu casse-pied !

Je ne vais malheureusement pas avoir le temps de me replonger dans mes souvenirs de programmation, donc je préfère laisser tomber le projet parce que je suis pas capable de finir le code que tu m'as donné.

J'ai essayé plusieurs choses mais ça ne marche pas et je pense qu'il faut avoir un bon niveau...

Private Sub CommandButton1_Click()

Dim prenom As String

Dim tableau, monTableau

Dim nbLig

'initialisations

prenom = TextBox1

nbLig = 0

ligFin = Worksheets("Base").Range("a" & Rows.Count).End(xlUp).Row

monTableau = Worksheets("Base").Range("a2", "e" & ligFin) 'ton tableau va jusqu'à la colonne e

'pas jusqu'à la colonne M

For i = LBound(monTableau, 1) To UBound(monTableau, 1)

If monTableau(i, 1) = prenom Then

nbLig = nbLig + 1

End If

Next i

If monTableau(i, 1) = prenom Then

tableau(i, 1) = monTableau(i, 1)

tableau(i, 3) = monTableau(i, 3)

tableau(i, 4) = monTableau(i, 4)

End If

If nbLig > 0 Then

ReDim tableau(1 To nbLig, 1 To 5)

'la suite du code

End If

Unload UserForm1

End Sub

Re,

Je pensais que tu proposais cet exemple et que tu parlais d'apprentissage car tu avais le temps d'apprendre, si ce que tu souhaites c'est un code fonctionnel, je te propose le suivant:

15exemple.xlsm (22.90 Ko)

Enorme merci, tu viens de m'aider comme jamais.

Je vais me remettre au VBA Asap pour pouvoir être plus indépendante, merci encore !!

De rien

Bonne continuation

Rechercher des sujets similaires à "creation tableau partir textbox"