Utiliser une variable dans un call

  • Initiateur de la discussion Initiateur de la discussion siocnarf
  • 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 !

siocnarf

XLDnaute Occasionnel
Bonjour,

Je souhaite prendre le bout de code ci-dessous et en faire une sous-routine car il est répétitif. Mon problème est que dans ce bout de code, il y a un call ... qui doit être fait et que la sous-routine appelé change d'une fois à l'autre. Quelle serait la bonne manière de procéder? Est-il possible d'utiliser une variable d'une manière ou une autre et de la passer dans un Call??

Code:
IntFinalColStat = Sheets(DefP_VFeuilStatData(0)).Cells(2, Application.Columns.Count).End(xlToLeft).Column

Sheets(DefP_VFeuilStatData(0)).Cells(1, IntFinalColStat).Select

'Coordonnée de sortie du premier tableau--> Nombre de message pertinents par système
IntCoordEvenementSystemes = "R1C" & IntFinalColStat + 2

StrTableName = "EvenementSystemes"
Set pt = DefP_PTCache.CreatePivotTable(TableDestination:= _
       "'[" & DefP_StrTableaudebord & "]" & DefP_VFeuilStatData(0) & "'!" & IntCoordEvenementSystemes, TableName:=StrTableName, DefaultVersion:=xlPivotTableVersion10)
Call [B]PivotEvenementsSystemes[/B](StrTableName)

Merci,
 
Re : Utiliser une variable dans un call

Bonjour,

Je confirme que Application.Run ne fonctionne pas. J'ai besoin de le faire avec un Call car c'est une sous-routine dans la même macro

L'inscription:

Code:
Call "Pivot" & PaC_SousRoutineNom(StrTableName)

génère une erreur.

J'ai également testé sans succès:

Code:
test = "Pivot" & PaC_SousRoutineNom & "(" & PaC_StrTableName & ")"
Application.Run test

Comment contourner ce problème?

Merci!
 
Dernière édition:
Re : Utiliser une variable dans un call

Bonsoir le forum,
Bonsoir siocnarf, tototiti2008

C'est peut-être la syntaxe de l'appel qui n'est pas bonne.

Avec un Call, la procédure doit avoir la série d'arguments entre ()

Corrigez moi, si je dis une ânerie.

Klin89
 
Re : Utiliser une variable dans un call

Je met une partie de mon code ici.
On remarque que j'ai une sous-routine qui reçoit des variables diverses et qui tente d'appeler la sous-sous-routine PivotEvenementsSystemes. Sans succès... 🙁

Code:
Sub Pivotacreer(PaC_StrTableaudebord, PaC_VFeuilStatData, PaC_IntFinalColStat, PaC_StrTableName, PaC_SousRoutineNom, PaC_PTCache)
Sheets(PaC_VFeuilStatData(0)).Cells(1, PaC_IntFinalColStat).Select

'Coordonnée de sortie du premier tableau--> Nombre de message pertinents par système
IntCoordEvenementSystemes = "R1C" & PaC_IntFinalColStat + 2

Set pt = PaC_PTCache.CreatePivotTable(TableDestination:= _
       "'[" & PaC_StrTableaudebord & "]" & PaC_VFeuilStatData(0) & "'!" & IntCoordEvenementSystemes, TableName:=PaC_StrTableName, DefaultVersion:=xlPivotTableVersion10)
       
test = PaC_SousRoutineNom & "(" & PaC_StrTableName & ")"
'Call "Pivot" & PaC_SousRoutineNom(StrTableName)
'Call PivotEvenementsSystemes
Application.Run test
End Sub
'============================================
'============================================
Sub PivotEvenementsSystemes(P_StrTableName)
 
Re : Utiliser une variable dans un call

Bonsoir,

Peut-être une erreur (horreur?!) de syntaxe mais je ne met pas le doigt dessus... si c'est le cas.

test = PaC_SousRoutineNom & "("
test2 = test & PaC_StrTableName & ")"
Application.Run test2

ce qui donne
application.Run "PivotEvenementsSystemes("EvenementsSystemes")"

Et cela ne fonctionne pas.

Merci
 
Dernière édition:
- 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

Discussions similaires

M
Réponses
4
Affichages
2 K
ManOfCatz
M
L
Réponses
5
Affichages
823
LandryK7
L
R
Réponses
8
Affichages
2 K
raoulruiz
R
D
  • Résolu(e)
Réponses
2
Affichages
531
delube
D
Retour