stockage de donnees dans un tableau

  • Initiateur de la discussion Initiateur de la discussion nico_debutant
  • 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 !

N

nico_debutant

Guest
Bonjour,

Je suis debutant dans VBA (1jour) et j'ai deja un problème (c'est normal je crois)

J'ai une cellule excel composé des nombres separés par des /
comme 135/45/90/10/-45/0

moi j'aimerai avoir un tablleau de n colones contenant chacune un nombre
n vaudra (le nombre de signe / +1)


autre question je voudrai savoir comment indexer un nom (de tableau par exemple) en fonction de I

exemple
tabeau_I avec i de 1 a 5

Voila si quelqu'un pouvai m'aider ce seri cool
a bientot
 
Re : stockage de donnees dans un tableau

Bonjour Nico,

Pour la première question (si j'ai bien compris)
Sélectionne ta colonne avec les données,
Menu données/convertir et tu te laisse guider par l'assistant de conversion.
A la deuxième étape dans le choix des séparateur de champs tu sélectionne 'Autres' et tu mets '/' dans la zone de texte adjacente.

Pour la deuxième question, j'ai pas du tout compris. Alors joins un exemple avec explication détaillées.

A+
 
Re : stockage de donnees dans un tableau

Bonjour à tous,
fait avec l'enregistreur de macro sur la base de la réponse d'Hasco
Code:
Sub miseenforme()

    Range("A1:A15").Select 'plage où sont tes données
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :="/", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, _
        1), Array(6, 1))
    ActiveWindow.SmallScroll Down:=-15
End Sub

En espérant que ça marche...

tibo
 
Re : stockage de donnees dans un tableau

Bonjour,

autre question je voudrai savoir comment indexer un nom (de tableau par exemple) en fonction de I

exemple
tabeau_I avec i de 1 a 5

Voila si quelqu'un pouvai m'aider ce seri cool
a bientot

Je vais expliquer plus.
en fait dans l'exemple je voudrai creer 5 tableau avec une boucle

pour i de 1 a 5
tableau_i
fpour

je voudrai obtenir 5 tableau nommé
tableau_1
tableau_2
tableau_3
tableau_4
tableau_5

j'espere que c'est plus clair
 
Re : stockage de donnees dans un tableau

Re,

Non ce n'est pas plus clair.
Pour quelle utilité, des tableaux de valeurs, de cellules?
Tu ne peux pas nommer dynamiquement des tableaux VBA, des plages de cellules oui.

Tout dépend de la finalité du projet.

Sois plus précis.

A+
 
Re : stockage de donnees dans un tableau

Re,

Non ce n'est pas plus clair.
Pour quelle utilité, des tableaux de valeurs, de cellules?
Tu ne peux pas nommer dynamiquement des tableaux VBA, des plages de cellules oui.

Tout dépend de la finalité du projet.

Sois plus précis.

A+

En fait je vais avoir plusieurs chaines de caracteres (comme ceux de la premiere question) je voudrai les mettres dans differents tableaux pour pouvoir les traiter un par un
sauf que le nombre de tableau differe d'une etude a l'autre
 
Re : stockage de donnees dans un tableau

Re


Essaie cette macro pour commencer

en A1, saisis: 135/45/90/10/-45/0
en B1 une valeur quelque conque.
Puis lance la macro

Code:
Sub test()
Dim ns&: Dim r As Range
Set r = ActiveCell
ns = Len(r) - Len(Replace(r, "/", ""))
For i = 1 To ns
r.Offset(, 1).EntireColumn.Insert
Next
r.TextToColumns Range("A1"), xlDelimited, xlDoubleQuote, False, False, False, False, False, True, "/"
r.Resize(, ns + 1).Columns.AutoFit
End Sub

Tes valeurs en A1 seront éclatées dans les cellules adjacentes (sans écraser les données en B1)

Je reviendrai voir les questions que tu te seras posé au sujet de ce code VBA.

(Car je n'oublie pas que tu débutes en VBA 😉 )

A+
 
Re : stockage de donnees dans un tableau

Re


Essaie cette macro pour commencer

en A1, saisis: 135/45/90/10/-45/0
en B1 une valeur quelque conque.
Puis lance la macro

Code:
Sub test()
Dim ns&: Dim r As Range
Set r = ActiveCell
ns = Len(r) - Len(Replace(r, "/", ""))
For i = 1 To ns
r.Offset(, 1).EntireColumn.Insert
Next
r.TextToColumns Range("A1"), xlDelimited, xlDoubleQuote, False, False, False, False, False, True, "/"
r.Resize(, ns + 1).Columns.AutoFit
End Sub

Tes valeurs en A1 seront éclatées dans les cellules adjacentes (sans écraser les données en B1)

Je reviendrai voir les questions que tu te seras posé au sujet de ce code VBA.

(Car je n'oublie pas que tu débutes en VBA 😉 )

A+


Merci mais j'ai demandé a un collegue qui m'a donné la solution
c'est tout simple mais il faut le savoir

la commande c'est

nom_du_tableau=split(nom_de_la_cellule,"/")

et il le fait tout seul

par contre ma deuxieme question a l'air plus problèmatique

:comment faire pourdefinir plusieur nombre ou tableau de maniere automatique

par exemple

je voudrai qu'il cré 5 "valeurs" nommé test_1, test_2,test_3,test_4,test_5

en leur donnant a toutes la valeur 1

en programation je l'ecrirai

Pour i de 1 a 5
test_i = 1
Fpour

Mais il faut que VBA comprenne que i prend 5 valeur successive 1,2,3,4,5

j'espere que c'est possible car sinon ca va me limiter grandement

a bientot
demmain vue l'heure
 
Re : stockage de donnees dans un tableau

Re,

comme je te le disais précédement il n'est pas possible en VBA de nommer dynamiquement des valeurs mais essaie ceci si cela t'intérresse:

Code:
Sub Test()
    Dim MonTableau(1 To 5, 1 To 2)
    Dim i As Byte
    Dim txt
    For i = 1 To 5
        MonTableau(i, 1) = "Test_" & i
        MonTableau(i, 2) = i
        txt = txt & MonTableau(i, 1) & " Valeur: " & MonTableau(i, 2) & vbCrLf
    Next i
    MsgBox txt
End Sub
 
Sub Test2()
    Dim macollection As New Collection
    Dim i As Byte
    For i = 1 To 5
        macollection.Add i, "Test_" & i
    Next
    MsgBox "Valeur de Test_2: " & macollection("Test_2")
End Sub

A+
 
- 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

Retour