begin process at 2012 02 15 06:38:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Langages dérivés

 > 

VBA

 > 

VBA Excel / Tableaux


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

VBA Excel / Tableaux

vendredi 9 janvier 2009 à 16:35:57 | VBA Excel / Tableaux

yoarf

Bonjour,

Soit la variable "nomtab", chaine de caractère concaténée :

Puis ensuite je voudrais que ce "nomtab" corresponde aux différents tableaux que j'ai préalablement créés.

Ce qui donnerait au final quelquechose come ça :

nomtab = "T_" & LCase(cat) & "_" & type_valorisation
nomtab(1, 1) = 5

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.

Merci d'avance.



Y.C
vendredi 9 janvier 2009 à 19:36:22 | Re : VBA Excel / Tableaux

PCPT

Administrateur CodeS-SourceS
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é

Prenez un instant pour répondre à ce sondage svp 
vendredi 9 janvier 2009 à 19:39:23 | Re : VBA Excel / Tableaux

jack

Administrateur CodeS-SourceS
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

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
dimanche 11 janvier 2009 à 21:55:23 | Re : VBA Excel / Tableaux

yoarf

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

cat = Worksheets("TRANSACTIONS").Cells(num_ligne, 7).Value

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

num_ligne = num_ligne + 1

Wend

Worksheets("Répartition").Cells(5, 4).Value = T_banque_d(1, 2009)
Worksheets("Répartition").Cells(5, 5).Value = T_banque_c(1, 2009)
Worksheets("Répartition").Cells(5, 6).Value = T_salaire_c(1, 2009)
Worksheets("Répartition").Cells(5, 7).Value = T_logement_d(1, 2009)
Worksheets("Répartition").Cells(5, 8).Value = T_logement_c(1, 2009)
Worksheets("Répartition").Cells(5, 9).Value = T_equipement_d(1, 2009)
Worksheets("Répartition").Cells(5, 10).Value = T_electricite_d(1, 2009)
Worksheets("Répartition").Cells(5, 11).Value = T_nourriture_d(1, 2009)
Worksheets("Répartition").Cells(5, 12).Value = T_diversloisirs_d(1, 2009)
Worksheets("Répartition").Cells(5, 13).Value = T_diversloisirs_c(1, 2009)
Worksheets("Répartition").Cells(5, 14).Value = T_impotsassurance_d(1, 2009)
Worksheets("Répartition").Cells(5, 15).Value = T_vetement_d(1, 2009)
Worksheets("Répartition").Cells(5, 17).Value = T_sante_d(1, 2009)
Worksheets("Répartition").Cells(5, 17).Value = T_sante_c(1, 2009)
Worksheets("Répartition").Cells(5, 18).Value = T_telephonie_d(1, 2009)
Worksheets("Répartition").Cells(5, 19).Value = T_transport_d(1, 2009)
Worksheets("Répartition").Cells(5, 20).Value = T_remboursements_c(1, 2009)
lundi 12 janvier 2009 à 00:12:15 | Re : VBA Excel / Tableaux

PCPT

Administrateur CodeS-SourceS
nomtab = "T_" & LCase(cat) & "_" & type_valorisation

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

type_valorisation = "c" 2

T_Unique(type_valorisation,1, 2009) = T_Unique(type_valorisation,1, 2009) + Worksheets("TRANSACTIONS").Cells(num_ligne, 4).Value

maintenant ton code à l'air d'un sacré sac de noeuds , il y a sans doute d'autres choses à revoir... (conception)

Prenez un instant pour répondre à ce sondage svp 


Cette discussion est classée dans : vba, excel, chaine, tableaux, nomtab


Répondre à ce message

Sujets en rapport avec ce message

vba excel problème de chaine [ par nitho ] bonjour à tous, j'ai un pb sur vba excel 2003, je sais que c'est différent de vb mais je n'ai pas trouvé le bon thème. Le pb est tout simple. j'ai mis Extraire caractères au milieu d'une chaine de caractères en VBA EXCEL [ par pnt ] Bonjour, Pourriez vous m'aider à écrire en VBA EXCEL la chose suivante: Je souhaiterai affecter à la variable Situ la suite de caractères D05sansD10 liste de tableaux en Vba sur Excel [ par CarolineBouteloup ] Bonjour, Pour traiter des fichiers Excel de résultats de manière efficace j'ai besoin de créer une liste de tableaux. Je peux déjà ouvrir un fichier Excel - VBA - Nom de feuille [ par nagattaque ] Et voila, le lundi c'est reparti....Bijour tout le monde, mon problème est simple, j'ai un classeur excel qui contient des feuilles. Le nom d'une de c Fonction rechercher [ par Florian62150 ] Slt tout le monde =) Je travaille sous EXCEL avec le language VBA. Je voudrai savoir s'il y a une fonction en VBA qui s'occupe de chercher une valeu [Catégorie modifiée VB6 - VBA] Excel et VBA - Userform et n° de ligne + noms [ par Musiek ] Bonjour, j'espère ne pas m'être trompé de catégorie, je programme actuellement sous excel et VBA et j'aurais 2 problèmes à vous exposé, pour lesquels Liens hypertexte vba excel [ par Hamptonash ] Bonjour à tous, Voilà mon problème, j'ai deux classeur EXCEL le premier qu'on appelle A et le deuxième B, chacun on une feuille qu'on appelle feuille [Déplacé .Net --> VBA] Vba Excel une seule macro executee à la fois [ par Lea77 ] Bonjour tout le monde. J'ai un fichier excel pour lequel j'ai développé un certain nombre de macros. L'utilisateur n'a acces qu'à la 1ere feuille qu Excel (VBA) aggreger des collones [ par legot1 ] Bonjour a tous, je suis assez debutant sous excel vbavoila alors j ai le tableau suivant: share day share month Monday 6 Jan [Catégorie modifiée .Net --> VBA] bibliotheque sous VBA [ par pipoleclown62 ] bonsoir a tous je fait partie d'une association d'aide a la lecture dans les ecoles enfin notre boulot consiste surtout dans le fait de donner envie


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,716 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales