Déclarer un nombre variable de Variable

FaridP

XLDnaute Occasionnel
Bonsoir la Planète Excel...

Devinez quoi ...
Je me mets au VBA !! Si, si c'est vrai !
Donc forcément j'ai plein de problème alors je sens que je vais me faire plein de nouveaux amis ;-).

Mon premier souci :
Comment déclarer un nombre variable de variable ??
Le nombre et donc nom de la variable dépendant d'une première variable récupérer auparavant.
Voici le Code

Code:
Sub ProjetFarid()
' Déclaration des variables
'****************************

' Récupérer le nombre de Codes Pub
Dim NbCodePub As Integer
NbCodePub = InputBox('Combien de Codes Pubs voulez-vous paramétrer ?', 'Nombres de Codes ')

' Récupérer le nom de la campagne
Dim NbCampagne As String
NbCampagne = InputBox('Quel est le Code de l'Opération sur laquelle porte la procédure?', 'Code Opérations')

' Récupérer la liste des Codes Pub et inscrire chacun d'eux dans une variable différente

For CompteurdeCodePub = 1 To NbCodePub
Dim CodePub
CodePub = InputBox('Code Pub ' & CompteurdeCodePub)
Next

End Sub
Comme toujours, merci de votre Aide
Farid
 

Hellboy

XLDnaute Accro
Bonsoir FaridP

Je te propose la solution suivante:


Option Explicit
Sub ProjetFarid()
' Déclaration des variables
'****************************
' Récupérer le nombre de Codes Pub
Dim NbCodePub                As Integer
NbCodePub = InputBox('Combien de Codes Pubs voulez-vous paramétrer ?', 'Nombres de Codes ')
' Récupérer le nom de la campagne
Dim NbCampagne                As String
NbCampagne = InputBox('Quel est le Code de l'Opération sur laquelle porte la procédure?', 'Code Opérations')
' Récupérer la liste des Codes Pub et inscrire chacun d'eux dans une variable différente
'    Déclaration de la variable tableau
Dim CodePub()                As Integer
' Dimention de la variable tableau
ReDim Preserve CodePub(NbCodePub)
Dim CompteurdeCodePub As Integer
For CompteurdeCodePub = 1 To NbCodePub
        CodePub(CompteurdeCodePub) = InputBox('Code Pub ' & CompteurdeCodePub)
Next
End Sub

a+
 

FaridP

XLDnaute Occasionnel
Bonsoir Philippe et Merci pour ton Aide

Juste un petit souci : cela ne fonctionne que lorsque le 'Code Pub' a une valeur numérique.
Si la chaine est Alpha -Numérique : Erreur 13.

T'as une idée sur le problème ?

Merci et Bon Week-End
Farid
 

FaridP

XLDnaute Occasionnel
Tu vas me trouver sacrément chiant mais quand j'essaie de rappeler chacun de mes codes pub dans une msgbox, soit j'ai une erreur de type 13 soit je ne récupère que le dernier.

Excuse moi, d'être aussi chiant après promis je te laisse même si j'ai encore des soucis.
;)

A+
Farid
 

FaridP

XLDnaute Occasionnel
En fait, je pense que ma demande n'est pas réalisable ou plutôt très complexe.

J'aimerais que ces Codes Pubs soient stockés en mémoire pour une utilisation ultérieure.

Et que je puisse les rappellés à tout moment mais comment les rappeler puisque je ne les déclare pas.
Enfin j'en déclare un mais sera toujours le dernier de la boucle. Mais que devienne les 1ers ??

Oulala ça donne mal à la tête tout ça, je retourne à mes 'p'tites fonctions' hors VBA :eek: .

A Bientôt et encore Merci Philippe.
 

Hellboy

XLDnaute Accro
re

Premièrement, tu n'est d'aucune façon chiant, je suis présent sur ce site par passion personnel, alors t'inquiète ! ;)

Maintenant, pour pouvoir récupérer de l'information dans une variable et ce presque en tout temps et tout moment( sauf en cas de panne électrique), il faut que ta variable soit déclaré Public( dite Globale) dans un Module standard.

Pour récupérer, chaque éléments que tu as crée avec tes InputBox, tu dois faire le même processus mais a l'envers. C-a-d, que tu as mis dans la variable tous tes information, alors tu dois pouvoir les récupéré en questionnant la variable.

En passant, j'ai assumer que toutes tes entrées son des nombres et qu'il ne sont pas plus petit que 32000 et plus grand que 32000. Si ce n'est pas le cas, tu dois déclarer tes variables sous un autre type.

Je te joint l'exemple:


Option Explicit

' Récupérer la liste des Codes Pub et inscrire chacun d'eux dans une variable sur différent index
' Déclaration de la variable tableau des InputBox
Public CodePub()                                As Integer

Public Sub ProjetFarid()
' Déclaration des variables
'****************************
' Récupérer le nombre de Codes Pub
Dim NbCodePub                                As Integer
NbCodePub = InputBox('Combien de Codes Pubs voulez-vous paramétrer ?', 'Nombres de Codes ')
' Récupérer le nom de la campagne
Dim NbCampagne                                As String
NbCampagne = InputBox('Quel est le Code de l'Opération sur laquelle porte la procédure?', 'Code Opérations')

' Dimention de la variable tableau
ReDim CodePub(NbCodePub)
Dim CompteurdeCodePub As Integer
For CompteurdeCodePub = 1 To NbCodePub
                CodePub(CompteurdeCodePub) = InputBox('Code Pub ' & CompteurdeCodePub)
Next
End Sub

Public Sub MessageInputBox()
       
Dim intMessageNo                As Integer
       
       
For intMessageNo = 1 To UBound(CodePub)
                MsgBox '' & CodePub(intMessageNo)
       
Next
End Sub
 

FaridP

XLDnaute Occasionnel
Salut Philippe,

Désolé pour ma réponse tardive.

Merci pour ton aide !! Tout Baigne.
A bientôt et encore merci.
Farid

PS : j'ai prévu un groupe électrogène en cas de panne électrique et si ça suffit pas, y a un vélo avec une dinamo relié au PC et vraiment en cas de gros pépin, je frotte mon double décimètre sur mon Pull-over en cashmire pour gratter 2 - 3 minutes le temps de sauvegarder.
;) :woohoo:
 

Discussions similaires

Statistiques des forums

Discussions
312 304
Messages
2 087 067
Membres
103 451
dernier inscrit
Souleymane