Problème avec la fonction dim

clems875

XLDnaute Nouveau
Bonjour,
Je suis en train d'écrire un programme dans le cadre de mes études et j'ai eu un problème dès le premier moment, voila lorsque j'utilise une fonction dim celle ci ne fonctionne pas et étant débutant je ne comprends pas pourquoi, donc si vous avez une solution, merci d'avance ^^
 

Vorens

XLDnaute Occasionnel
Re : Problème avec la fonction dim

Hello tout le monde,

Effectivement c'est flou :)

Dit nous dans quel contexte tu utilise ton dim et le plus simple en fait, link nous ton code cela nous donnera deja une bonne idée du problème. Je vois que tu es nouveau sur le forum je sais pas si tu as remarquer l'outil pour copier / coller un code VBA sur le forum. Dans le doute voiçi la prodèdure:

1) Aller en mode avancé de la réponse ( de base si tu ouvre le fil de depuis ta boîte Email tu arrive en mode réponse rapide). Pour changer le mode, clic le bouton en bas à droite de la fenêtre d'édition du message.

2)Tu à la boîte à outil du message en haut. Dans la ligne centrale à droite tu à le bouton "#" (si tu laisse ta souris dessus tu verra le message "Ajouter balise CODE" apparaître. tu clic, Ensuite tu colle ton code entre les deux CODE][/CODE qui se seront inséré.

3) On t'aide

Voila facile =) Oublie pas de t'abonner à la discutions pour recevoir un Email à chaque réponse.

Meilleures salutations
 

clems875

XLDnaute Nouveau
Re : Problème avec la fonction dim

Commençons par le debut je fais des etudes dans le genie civil et j'ecris un programme pour dimmensionner une poutre en beton armé. Comme j'ai un grand nombre de variable je voudrais utiliser la fonction dim de maniere a avoir un code plus clair que si a chaque fois je devais definir la cellule que je veux utiliser dans le calcul. Et lorsque je defini des variables avec le fonction dim le programme ne fonctionne pas alors que je le reécris sans le fonction dim il fonctionne parfaitement mais j'ai un programme pas clair du tout
 

Vorens

XLDnaute Occasionnel
Re : Problème avec la fonction dim

Re,

Cela viens surement du fait que tu ne mets pas le bon type de variable lorsque tu les déclare en avec Dim

En gros, lorsque tu ne déclare pas tes variables, VBA affecte automatiquement le type qui lui parait le plus logique. Donc si par exemple tu déclare.

Code:
Dim Var1 As integer

et que ta variable i est censé être du texte tu peux provoquer un bug dans ton programme. Donc pour du texte il faut dire

Code:
Dim Var1 As String


Etc etc,
 

MichD

XLDnaute Impliqué
Re : Problème avec la fonction dim

Bonjour,

Dim n'est pas une fonction mais une instruction que l'on utilise soit au début d'une procédure
pour déclarer les variables sont la procédure aura de besoin, soit tout en haut du module si on
veut étendre l'étendue du rayonnement de la variable pour toutes les procédures contenues
dans le module.

VBA - Excel définit l'expression comme suit :
'-----------
"Dim : Déclare des variables et attribue de l'espace de stockage."
'-----------

Exemple de déclaration :
'-------------
Sub Test()

Dim Toto As String, A as integer, B as Long

'Le code de la procédure
End Sub
'--------------

Lorsque tu attribues de type (string, long, integer, range....) à une variable, tu attribues à cette
variable un espace mémoire de la mémoire vive où sera conservée la valeur de la variable


La déclaration du type de variable augmente sensiblement l'efficacité et la rapidité de l'exécution
du code. Pour t'en convaincre, copie le code suivant dans un module standard.

Exécute cette macro une fois comme elle est écrite une fois
et une deuxième fois en mettant une apostrophe devant ligne débutant par des "DIM"

Comparer la durée de l'exécution entre les 2 façons de procéder!

VB:
Sub TimeTest()

Dim A As Integer, B As Integer, C As Integer
Dim x As Integer, y As Integer
Dim i As Integer, j As Integer
Dim StartTime As Date, EndTime As Date

StartTime = Timer

x = 0
y = 0
For i = 1 To 5000
    For j = 1 To 1000
        A = x + y + j
        B = y - x - i
        C = x - y - i
    Next j
Next i

EndTime = Timer
MsgBox EndTime - StartTime
End Sub

Cet exemple est signé : John Walkenbach, Auteur d'excellents bouquins sur Excel et VBA. On le surnomme Mr Excel!
 

clems875

XLDnaute Nouveau
Re : Problème avec la fonction dim

Voila un exemple de mon problème, la macro "test" ne fonctionne pas mais la macro "test2" fonctionne très bien
 

Pièces jointes

  • test.xlsm
    18.5 KB · Affichages: 23
  • test.xlsm
    18.5 KB · Affichages: 24
  • test.xlsm
    18.5 KB · Affichages: 26

Si...

XLDnaute Barbatruc
Re : Problème avec la fonction dim

Salut Tous,

Si... tu veux voir quelque chose, il faut le dire !
Code:
 Dim a As Double
  Dim b As Double
  a = Sheets("feuil1").Cells(2, 2).Value
  b = 2 * a
  Sheets("feuil1").Cells(1, 2) = b 'pour voir !
 

Vorens

XLDnaute Occasionnel
Re : Problème avec la fonction dim

Re,

Déjà tes deux macros ne fond pas le même travail...

Essais comme ceci (j'ai modifier un peux à la one étant donné que l'objectif final n'est pas très claire mais cela te permet de voir les différents résultat).

Code:
Sub test()
Dim a As Double
Dim b As Double

a = Sheets("feuil1").Cells(1, 1).Value


b = 2 * a
Sheets("feuil1").Cells(2, 1).Value = b
End Sub
Sub test2()
Sheets("feuil1").Cells(1, 2).Value = 2 * Sheets("feuil1").Cells(2, 2).Value

End Sub
 

Discussions similaires

Réponses
5
Affichages
271