Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
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 ^^
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.
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
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!
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
Ce site utilise des cookies pour personnaliser le contenu, adapter votre expérience et vous garder connecté si vous vous enregistrez.
En continuant à utiliser ce site, vous consentez à notre utilisation de cookies.