Variables dans une macro

  • Initiateur de la discussion Initiateur de la discussion manwholooklikedude
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

manwholooklikedude

Guest
Bonjour les aminches, ca farte ?

Voilà, ça fait un bail que j'ai pas touché aux macros et là je récupère un fichier que quelqu'un d'autre à fait et je cherche à comprendre:

Sub Efface(nom)
For j = 2 To 140
For i = 7 To 50
Worksheets(nom).Cells(i, j).ClearContents
Next i
Next j

End Sub

Bon je comprend ce que fait cette macro mais je ne vois pas à quoi correspondent le i et le j. Bon je vois bien que c'est les coordonnées des cellules mais c'est bizarre car dans mes souvenirs il fallait déclarer ce genre de trucs avant..... Est ce que c'est des variables ? Est ce que le programme comprend tout seul que c'est les coordonnées de cellules ? Est ce que c'est déclaré ailleurs et que j'ai loupé le truc ?

Si quelqu'un peut m'éclairer............

Merci
 
Re : Variables dans une macro

bonjour manwholooklikedude le forum
si tu mets pas option explicit en entete dans ton module tu est pas oblige de declarer les variables inconvenient
manque de transparence dans le code en cas de bogue
par defaut i j & declare en variant
excecution macro plus lente dans ton cas tu ecrires comme cela
Option Explicit
Sub Efface()
Dim i As Byte, j As Byte
For j = 2 To 140
For i = 7 To 50
Cells(i, j).ClearContents
Next i
Next j
End Sub
 
Re : Variables dans une macro

Bonjour manwholokklikedude, jean pierre,

ici une boucle n'est pas nécessaire (enfin avec ce que tu nous envoie), ceci suffit et est beaucoup plus rapide:

Code:
Sub Efface(nom)
Worksheets(nom).Range([B]"B7:EJ50"[/B]).ClearContents

End Sub
 
Re : Variables dans une macro

Bonjour man...lude, Excalibur, Skoobi, à tous

Déclarer ses variables ou ne pas déclarer tel est la question.

Personnellement, cela me saoule un peu de tout déclarer (il est vrai que je ne suis pas un véritable programmeur).

Donc si c'est juste pour faire quelque petites macros, je pense que ce n'est pas necessaire. Mais par contre si cela devient complexe, il vaut mieux le faire, surtout pour des variables Public qui devront l'être.

Bon, je vais peut-être me faire rappeler à l'ordre sur ce coup-la.

Ah je viens de voir ce que dit Skoobi. C'est vrai que quelquefois une syntaxe bien pensée comme celle de Skoobi peut rendre bien des services en terme de rapidité.
 
Dernière édition:
Re : Variables dans une macro

Re bonjour à tous

Merci Skoobi pour le lien et merci à Didier que je salue. Cela me rassure un peu.

MAis bon tout le monde parle de rapidité par raport à la déclaration des variables mais je n'ai jamais vu une belle démonstration de la chose!
 
Re : Variables dans une macro

bonjour MJ13 tototiti manwholooklikedude skoobi le forum
un exemple concret de john Walkenbach a tester avec declaration variables & sans rapport tu comprendras mieux

Option Explicit
Sub Macro1()
Dim x As Integer, y As Integer, a As Integer, b As Integer, c As Integer, i As Integer, j As Integer
Dim tempsdebut As Date, tempsfin As Date
tempsdebut = Timer
x = 0: y = 0
For i = 1 To 5000
For j = 1 To 5000
a = x + y + i
b = y - x - i
c = x - y - i
Next j: Next i
tempsfin = Timer
MsgBox Format(tempsfin - tempsdebut, "0.0")
End Sub
 
Re : Variables dans une macro

Bonjour à tous

Merci Excalibur pour ce code qui démontre bien l'intérêt de bien définir ses variables, j'ai testé et j'arrive à environ 4 secondes et 10 secondes sur XL2003 avec un pentium 4 . Sur un autre PC, 2,2 et 6,8 secondes sur un Intel double coeur sur XL2007.

Sinon la déclaration des dates me fait ganer 0,2 secondes. Logique non!
Et si on met Double à la place de Integer, on est à environ 6 secondes dans mon premier cas.

Par contre,il vaut mieux pas écrire les résultats dans une cellule, car la c'est très long.

En plus le code je pourrais le mettre en action pour d'autre macros.

Merci ausi à John.
 
Re : Variables dans une macro

Bonsoir Skoobi

Merci c'est vrai que les tableaux c'est pas (encore) ma tasse de thé .

Donc sur notre moteur de recherche préféré (pas celui d'XLD, l'autre), j'ai tapé VBA tableau et devine quel est le premier lien. Regarde, c'est assez instructif ensuite j'ai recherché dans Reader Rapidité. ET j'ai trouvé un autre test.

Alors merci qui, MichelXLD bien sur.

Oh fait j'ai testé ton USf filtre, je commence a le comprendre, cela a l'air assez puissant.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
15
Affichages
812
Réponses
8
Affichages
797
Réponses
5
Affichages
925
Réponses
10
Affichages
1 K
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
907
Réponses
3
Affichages
882
Retour