!!! PB sur décalaration de Var dans VBA !!!

F

fabrice

Guest
Bonjour à tout le monde

Bon voila j'ai un probleme qui va paraitre débille pour beaucoup mais je prends le risque d'être ridicule.

Voilà j'ai mis un mon sur une cellule dans ma feuille 1.
EX A1=test

Je voudrai réutiliser le mon "test" dans une macro pour m'enviter de chercher la cellule. Pour cela il faut définir le nom "test" dans VBA. C'est là ou j'ai mon PB.

Je n'arrive pas à définir ma variable à VBA.

Pourriez vous m'aider???
Merci de votre réponse.

FAb
 
F

fabrice

Guest
Resalut

Finalement j'ai fait ce que tu m'as dit mais là, PB.
Je te fais passer un fichier pour une meilleur conprehension. (car mes explications pas terribles).

Merci de ton aide,
FAb
 

Pièces jointes

  • testvar.xls
    24 KB · Affichages: 81
  • testvar.xls
    24 KB · Affichages: 80
  • testvar.xls
    24 KB · Affichages: 86
@

@Christophe@

Guest
Bonjour Fabrice,

Voici pour toi les type de varialbe avec leur explication:

I. Boolean
Ne peut prendre que les valeurs True et False. Lorsque vous convertissez d'autres types de valeur numérique en Boolean, la valeur 0 devient False et toutes les autres deviennent True. Dans le cas inverse, False devient 0 et True devient -1.
Ce type de données utilise 2 octets pour stocker la variable.
Pour convertir une donnée numérique en Boolean, utilisez la fonction CBool, exemple : CBool(10) qui donne la valeur True.

II. Byte
Ce type de données comprend les valeurs entières de 0 à 255 et utilise 1 octet pour stocker la variable.
Pour convertir une donnée numérique en Byte, utilisez la fonction CByte, exemple : CByte(10.50) donne la valeur 10. La valeur est arrondie à l'entier le plus proche. Si la valeur à convertir est supérieur ou égale à 256, vous provoquez une erreur de dépassement de capacité.

III. Integer
Ce type de données comprend les valeurs entières de -32 768 à 32 767, utilise 2 octets pour stocker la variable.
Attention au nombre de lignes dans une feuille d'Excel, elles sont de 65536 depuis la version 97, donc si vous devez lire chaque ligne d'une feuille à l'aide d'une variable, celle-ci ne peut être de type Integer, mais doit être de type Long.
Pour convertir une donnée numérique en Integer, utilisez la fonction CInt, exemple : CInt(1000.45) qui donne la valeur 1000. La valeur est arrondie à l'entier le plus proche. Si la valeur à convertir est supérieur ou égale à 32 768 ou inférieur ou égale à -32 769, vous provoquez une erreur de dépassement de capacité.

IV. Long
Ce type de données comprend les valeurs entières de -2 147 483 648 à 2 147 483 647, utilise 4 octets pour stocker la variable.
Pour convertir une donnée numérique en Long, utilisez la fonction CLng, exemple : CLng(1000.45) qui donne la valeur 1000. Si la valeur à convertir est supérieur ou égale à 2 147 483 647 ou inférieur ou égale à -2 147 483 649, vous provoquez une erreur de dépassement de capacité.

V. Single
Ce type de données comprend les valeurs à virgules flottantes est comprise entre -3,402823E38 et -1,401298E-45 pour les nombres négatifs et entre 1,401298E-45 et 3,402823E38 pour les positifs, utilise 4 octets pour stocker la variable.
Pour convertir une donnée numérique en Single, utilisez la fonction CSng. Si la valeur à convertir n'est pas comprise entre les valeurs indiquées ci-dessus, vous provoquez une erreur de dépassement de capacité.

V I. Double
Ce type de données comprend les valeurs à virgules flottantes est comprise entre -1,79769313486231E308 et -4,94065645841247E-324 pour les nombres négatifs et entre 4,94065645841247E-324 et 1,79769313486231E308 pour les positifs, utilise 8 octets pour stocker la variable.
Pour convertir une donnée numérique en Double, utilisez la fonction CDbl. Si la valeur à convertir n'est pas comprise entre les valeurs indiquées ci-dessus, vous provoquez une erreur de dépassement de capacité.

VII. Date
Ce type de données comprend les dates comprises entre le 1er janvier 100 et le 31 décembre 9999, les heures allant de 0:00:00 à 23:59:59. Toute valeur de date peut être attribuée à une variable de type Date ou de type Double. Ce type utilise 8 octets pour stocker la variable.
La fonction CDate convertit une date sous forme de texte ou de nombre en une donnée Date, exemple : CDate (2.5) donne 01/01/1900 12:00:00. Lors de la conversion d'un nombre en date, la partie entière du nombre est convertie en date, la partie décimale est convertie en heures (1 heure = 1/24). Cette fonction reconnaît les formats de date définis dans les paramètres régionaux de votre système, la date risque de ne pas être convertie correctement si la valeur est fournie dans un format différent de vos paramètres régionaux.
Utilisez la fonction IsDate pour savoir si la valeur peut être convertie en date ou en heure.

VIII. Currency
Ce type de données comprend les valeurs entières, avec un décalage de 10 000 afin d'obtenir un nombre à virgule fixe comprenant 15 chiffres à gauche du séparateur décimal et 4 chiffres à droite. Utilisant 8 octets, ces valeurs sont comprises entre -922 337 203 685 477,5808 et 922 337 203 685 477,5807.
Currency est utile pour les calculs monétaires et pour les calculs à virgule fixe.
La fonction CCur convertit une donnée numérique en type Currency, exemple : CCur (1.23456789) donne 1,2346.

IX. String
Il existe deux types de chaînes :

Les chaînes de longueur variable peuvent contenir environ 2^31 caractères.
Les chaînes de longueur fixe peuvent contenir de 1 à 2^16 caractères

X. Object
Ce type de données fait référence à n'importe quel type d'objet, mais la relation entre la variable et l'objet ne se fait qu'au moment de l'exécution du code, il est donc préférable de préciser le type d'objet dès la déclaration, ainsi la relation est établie pendant la compilation du code (ce qui permet au programme d'être plus rapide et efficace). Object utilise 4 octets en mémoire.

XI. Variant
Ce type de données peut contenir des données de toutes sortes, à l'exception des données de type String de longueur fixe. C'est le type de données qui est attribué aux variables, lorsque vous les déclarer sans aucune précision (Dim Variable). Les données numériques correspondent à n'importe quel nombre entier ou réel dont la valeur est comprise entre -1,797693134862315E308 et -4,94066E-324 pour les négatifs et entre 4,94066E-324 et 1,797693134862315E308 pour les positifs.
Il vaut mieux éviter de ne travailler qu'avec des variants, cela peut être source d'erreur et utilise beaucoup de mémoire inutilement, mais ce type est pratique dans certains cas. En effet, Variant va s'adapter à la valeur que vous lui attribuez, si celle-ci est un Integer, elle sera considéré par VB comme Integer, mais si après une opération la valeur dépasse la capacité du type Integer, la variable Variant deviendra de type Long ou Single ou Double selon le résultat.



@+

@Christophe@
 
@

@Christophe@

Guest
Bonjour Fabrice

Voici ta version modifie, avec une variable A

Quand penses tu, est ce ce que tu cherche?

Merci

@Christophe@
 

Pièces jointes

  • testvar.xls
    24.5 KB · Affichages: 63
  • testvar.xls
    24.5 KB · Affichages: 66
  • testvar.xls
    24.5 KB · Affichages: 60
F

fabrice

Guest
resalut

c'est casiment ca.
en fait, je voudrai eviter de faire référence à la Cellule A1. Pour cela je lui donne un nom, par exemple Test. Je voudrai en fait que VBA fasse référence à test au lieu de A1.

Je ne sais pas si tu vois ce que je veus dire!!!

Merci de ton aide
FAb
 
@

@Christophe@

Guest
Coucou Fabrice, Valerie

Désolé, j'étais sur autre choses, mais Fab, Valerie a raison, mais il te faut nommé ta cellule test, in ne sais pas inventé une cellule, regarde le fichier joint et dis moi quoi

Merci

@Christophe@
 

Pièces jointes

  • testvar.xls
    26 KB · Affichages: 67
  • testvar.xls
    26 KB · Affichages: 81
  • testvar.xls
    26 KB · Affichages: 76
V

Valérie

Guest
Re salut!!

ça va je suis calme et détendue... mais merci du conseil!!

Je crois que tu souhaites placer ta cellule dans une variable dite objet
d'où une déclaration
Dim A as Range

puis une affectation
Set A = Range("Test")

Dans ce cas tu pourras utiliser A comme Objet et créer des lignes de code du type

A.FormatNumber = ...

Mais je ne vois pas bien ce que fais "Test" là dedans alors je suis pas sûre d'avoir bien compris ta demande...

@+
Valérie
 
M

Mytå

Guest
Salut Fabrice, @Christophe, Valérie et le forum

Si j'ai compris de quoi qui ressemble a cela tu voudrais

Sub Macro1()
Dim test As String
test = "A1"
Range("test").Select
Selection.Copy
Range("A10").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub

Mytå
 

Discussions similaires

Statistiques des forums

Discussions
312 358
Messages
2 087 581
Membres
103 598
dernier inscrit
f-laurent