Bonjour,
Je me permets de vous solliciter sur la problématique gestion de l'adressage mémoire par VBA.
En pièce jointe vous trouverez dans le module un code VBA permettant de récupérer l'adresse mémoire de chaque variable déclarée (non initialisé). Les variables étudiées sont numériques (ex : Integer)
Je fais appel à "VarPtr" qui d'après ce que j'ai compris récupère l'adresse en mémoire (du 1er élement si c'est un tableau) ou est située la variable soit :
+ Une adresse au format Long
+ Une adresse au format hexadécimale (en utilisant Hex)
Je me suis permis de déclarer des Integer, Date, Currency, Double, etc ...
En effectuant la soustraction de 2 variables de même types j'obtiens une cohérence sur l'ensemble des variables déclarées à l'exception des variables Bytes.
Ex : un integer est codé sur 2 octets (Adresse variable Integer2 - Adresse variable Integer 1) = 2 octets ?
(i.e. adresse en mémoire contigue)
Tout fonctionne donc en appliquant ce mécanisme (ex : variable Date est codée sur 8 octets) etc ... à l'exception des Byte.
Y a t-il une erreur de raisonnement commis de ma part ? Une incompréhension ou tout simplement j'ai mélangé quelques aspects ?
Merci d'avance de vos lumières,
Cordialement
El Gringo 123456
Je me permets de vous solliciter sur la problématique gestion de l'adressage mémoire par VBA.
En pièce jointe vous trouverez dans le module un code VBA permettant de récupérer l'adresse mémoire de chaque variable déclarée (non initialisé). Les variables étudiées sont numériques (ex : Integer)
Je fais appel à "VarPtr" qui d'après ce que j'ai compris récupère l'adresse en mémoire (du 1er élement si c'est un tableau) ou est située la variable soit :
+ Une adresse au format Long
+ Une adresse au format hexadécimale (en utilisant Hex)
Je me suis permis de déclarer des Integer, Date, Currency, Double, etc ...
En effectuant la soustraction de 2 variables de même types j'obtiens une cohérence sur l'ensemble des variables déclarées à l'exception des variables Bytes.
Ex : un integer est codé sur 2 octets (Adresse variable Integer2 - Adresse variable Integer 1) = 2 octets ?
(i.e. adresse en mémoire contigue)
Tout fonctionne donc en appliquant ce mécanisme (ex : variable Date est codée sur 8 octets) etc ... à l'exception des Byte.
Y a t-il une erreur de raisonnement commis de ma part ? Une incompréhension ou tout simplement j'ai mélangé quelques aspects ?
Merci d'avance de vos lumières,
Cordialement
El Gringo 123456