Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2021 récupérer la valeur d'une variable en fin de boucle dans une autre procédure

Attila451

XLDnaute Occasionnel
Bonjour,
Je n'arrive pas à récupérer la valeur de ma variable en fin de boucle. J'ai 2 macros que j'ai simplifiées, la 1ère effectue un balayage avec une boucle while/wend. A la fin de la boucle, je voudrais arriver à enregistrer la valeur 4 et la renvoyer dans la macro suivante. J'ai essayé, surement de travers avec Public const mais ça ne fonctionne pas.
Hormis envoyer ma valeur vers une cellule, et dire à la macro suivant d'aller chercher la valeur dans cette cellule, j'imagine qu'il existe certainement une solution.
Par contre, je précise que j'ai simplifié la macro mais je ne peux pas changer sa structure.
Merci d'avance pour votre aide.
Cdlt
 

Pièces jointes

  • FICHIER1.xlsm
    12.5 KB · Affichages: 2

wDog66

XLDnaute Junior
Bonjour Attila451

Vous pouvez le faire comme Ceci
VB:
Option Explicit

Sub CALCUL()
  Dim Ligori As Long
  Ligori = 1
  While Cells(Ligori, 1) <> ""
    Cells(Ligori, 2) = "B"
    Ligori = Ligori + 1
  Wend
  'la boucle se termine et la valeur de ligori est de 4
  Call total(Ligori)
End Sub

Sub total(Ligori As Long)
  'comment récupérer la valeur 4 pour ligori ci dessous ?
  Cells(Ligori, 1) = "TOTAL"
End Sub

A+
 

Attila451

XLDnaute Occasionnel
Bonjour wDog66,
Merci pour le retour, ça fonctionne !
Par contre, ça aiguise ma curiosité: si on a les valeurs de 2 variables à récupérer, ou 3 et plus:

Option Explicit

Sub CALCUL()
Dim Ligori As Long
Dim ligdest as long


Ligori = 1
ligdest=130
While Cells(Ligori, 1) <> ""
Cells(Ligori, 2) = "B"
Ligori = Ligori + 1
Wend
'la boucle se termine et la valeur de ligori est de 4
Call total(Ligori,ligdest)
End Sub

Sub total(Ligori As Long, ligdest as long)
'comment récupérer la valeur 4 pour ligori ci dessous ?
Cells(Ligori, 1) = "TOTAL"
End Sub

Merci encore !
 

wDog66

XLDnaute Junior
Re,

Le principe semble être compris, mais pas l'utilisation

On transmet à la Sub Total() les valeurs que l'on veut à partir du moment ou les paramètres sont définis
VB:
Sub total(Ligori As Long, Ligdest as long)
    Msgbox "Valeur de Ligori =" & Ligori
    Msgbox "Valeur de Ligdest =" & Ligdest
End Sub

A+
 

Attila451

XLDnaute Occasionnel
Merci pour le retour ! Bon, j'ai testé et ça fonctionne. Jusqu'à présent, j'envoyais la dernière valeur de ma variable sur une cellule excel et en fin de routine, j'effaçais le contenu. Merci pour mon évolution !
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…