Or biensur cela ne fonctionne pas car au début "nomtab" est une chaine de caractère puis ensuite "nomtab" est un tableau.
Je ne sais pas si vous voyez, mais je veux agir le libellé du tableau, ceci en fonctionne d'une vhaine de caractères.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 9 janv. 2009 à 19:36
salut,
le tableau a un nom (de variable) pour le mode développement, mais tu ne peux pas travailler dans un tableau en essayant d'utiliser une variable qui va créer son "nom", ce n'est pas du php...
NB : "VBA EXCEL" ce n'est pas VB6..., il y a une rublique pour VBA.
topic déplacé
<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 9 janv. 2009 à 19:39
Salut
J'ai rien compris.
Au départ, tu nous dit que c'est une chaine.
Après tu nous sors d'autres variables "cat" et "type_valorisation" sorties de je ne sais où
et au final tu écris un chiffre dans un tableau portant le nom de la chaine.
Alors parlons le même langage, et pour commencer, le français :
"je voudrais que "nomtab" corresponde aux tableaux que j'ai créés" : Corrspondre : Quelle définition, comment veux tu, informatiquement, faire correspondre une chaine et un tableau ?
"je veux agir [sur] le libellé du tableau" : Faudra nous dire ce que c'est qu'un libellé de tableau
S'il te plait, donne des exemples concrets de ce que veux faire, parce que là, c'est du charabia !
Est-ce que, ce que tu appelles "tableau" a un rapport avec des Cellules dans une feuille Excel ou bien seulement dans des tableaux définis sous VBA ? Comment as-tu déclaré tes tableaux ? de quels types ? ...
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
yoarf
Messages postés215Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention19 février 2009 11 janv. 2009 à 21:55
Voilà je voudrais en fait "réduire" ce code suivant (c un peu l'usine à gaz) :
Dim val As Integer
Dim num_ligne As Integer
Dim cat As String
Dim T_banque_d(1 To 12, 2009 To 2100) As Single
Dim T_banque_c(1 To 12, 2009 To 2100) As Single
Dim T_salaire_c(1 To 12, 2009 To 2100) As Single
Dim T_logement_d(1 To 12, 2009 To 2100) As Single
Dim T_logement_c(1 To 12, 2009 To 2100) As Single
Dim T_equipement_d(1 To 12, 2009 To 2100) As Single
Dim T_electricite_d(1 To 12, 2009 To 2100) As Single
Dim T_nourriture_d(1 To 12, 2009 To 2100) As Single
Dim T_diversloisirs_d(1 To 12, 2009 To 2100) As Single
Dim T_diversloisirs_c(1 To 12, 2009 To 2100) As Single
Dim T_impotsassurance_d(1 To 12, 2009 To 2100) As Single
Dim T_vetement_d(1 To 12, 2009 To 2100) As Single
Dim T_sante_d(1 To 12, 2009 To 2100) As Single
Dim T_sante_c(1 To 12, 2009 To 2100) As Single
Dim T_telephonie_d(1 To 12, 2009 To 2100) As Single
Dim T_transport_d(1 To 12, 2009 To 2100) As Single
Dim T_remboursements_c(1 To 12, 2009 To 2100) As Single
num_ligne = 2
While Worksheets("TRANSACTIONS").Cells(num_ligne, 1).Value <> ""If (Month(Worksheets("TRANSACTIONS").Cells(num_ligne, 1).Value)) 1 And (Year(Worksheets("TRANSACTIONS").Cells(num_ligne, 1).Value)) 2009 Then
If Worksheets("TRANSACTIONS").Cells(num_ligne, 7).Interior.ColorIndex = 10 Then
type_valorisation = "c"
End If
If Worksheets("TRANSACTIONS").Cells(num_ligne, 7).Interior.ColorIndex = 45 Then
type_valorisation = "d"
End If
nomtab = "T_" & LCase(cat) & "_" & type_valorisation
'*****
If nomtab = "T_banque_d" Then
T_banque_d(1, 2009) = T_banque_d(1, 2009) + Worksheets("TRANSACTIONS").Cells(num_ligne, 3).Value
End If
If nomtab = "T_banque_c" Then
T_banque_c(1, 2009) = T_banque_c(1, 2009) + Worksheets("TRANSACTIONS").Cells(num_ligne, 4).Value
End If
If nomtab = "T_salaire_c" Then
T_salaire_c(1, 2009) = T_salaire_c(1, 2009) + Worksheets("TRANSACTIONS").Cells(num_ligne, 4).Value
End If
If nomtab = "T_logement_d" Then
T_logement_d(1, 2009) = T_logement_d(1, 2009) + Worksheets("TRANSACTIONS").Cells(num_ligne, 3).Value
End If
If nomtab = "T_logement_c" Then
T_logement_c(1, 2009) = T_logement_c(1, 2009) + Worksheets("TRANSACTIONS").Cells(num_ligne, 4).Value
End If
If nomtab = "T_equipement_d" Then
T_equipement_d(1, 2009) = T_equipement_d(1, 2009) + Worksheets("TRANSACTIONS").Cells(num_ligne, 3).Value
End If
If nomtab = "T_electricite_d" Then
T_electricite_d(1, 2009) = T_electricite_d(1, 2009) + Worksheets("TRANSACTIONS").Cells(num_ligne, 3).Value
End If
If nomtab = "T_nourriture_d" Then
T_nourriture_d(1, 2009) = T_nourriture_d(1, 2009) + Worksheets("TRANSACTIONS").Cells(num_ligne, 3).Value
End If
If nomtab = "T_diversloisirs_d" Then
T_diversloisirs_d(1, 2009) = T_diversloisirs_d(1, 2009) + Worksheets("TRANSACTIONS").Cells(num_ligne, 3).Value
End If
If nomtab = "T_diversloisirs_c" Then
T_diversloisirs_c(1, 2009) = T_diversloisirs_c(1, 2009) + Worksheets("TRANSACTIONS").Cells(num_ligne, 3).Value
End If
If nomtab = "T_impotsassurance_d" Then
T_impotsassurance_d(1, 2009) = T_impotsassurance_d(1, 2009) + Worksheets("TRANSACTIONS").Cells(num_ligne, 3).Value
End If
If nomtab = "T_vetement_d" Then
T_vetement_d(1, 2009) = T_vetement_d(1, 2009) + Worksheets("TRANSACTIONS").Cells(num_ligne, 3).Value
End If
If nomtab = "T_sante_d" Then
T_sante_d(1, 2009) = T_sante_d(1, 2009) + Worksheets("TRANSACTIONS").Cells(num_ligne, 3).Value
End If
If nomtab = "T_sante_c" Then
T_sante_c(1, 2009) = T_sante_c(1, 2009) + Worksheets("TRANSACTIONS").Cells(num_ligne, 4).Value
End If
If nomtab = "T_telephonie_d" Then
T_telephonie_d(1, 2009) = T_telephonie_d(1, 2009) + Worksheets("TRANSACTIONS").Cells(num_ligne, 3).Value
End If
If nomtab = "T_transport_d" Then
T_transport_d(1, 2009) = T_transport_d(1, 2009) + Worksheets("TRANSACTIONS").Cells(num_ligne, 3).Value
End If
If nomtab = "T_remboursements_c" Then
T_remboursements_c(1, 2009) = T_remboursements_c(1, 2009) + Worksheets("TRANSACTIONS").Cells(num_ligne, 4).Value
End If
'*****
End If
comme dit précédemment, tu ne peux pas utiliser un tableau par son nom
"dynamique"
par contre tu peux créer un tableau de ... tes tableaux. de 1 à 16. et tu gardes l'index de la première dimension dans laquelle tu veux lire ou écrire les valeurs