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

Microsoft 365 Prendre un tableau en paramètre dans une fonction

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 !

Excellearning

XLDnaute Nouveau
Bonjour à tous et à toutes.
Je vous espère bien
Je souhaiterais savoir si possible comment faire pour passer un tableau en paramètre d'une fonction
Ci-joint un fichier
Merci
 

Pièces jointes

Solution
C
Bonjour le fil

@Excellearning pour transmettre un tableau dans une fonction il faut que ce soit définit correctement 😉
VB:
Public Function Test_Per(Tableau) As Integer
  Dim Entven As Integer
  Dim Pdd As Integer
  Dim PerEVen As Double
  Dim PerOdd As Double
  Even = 0
  Pdd = 0
  I = 0
  Do While Tableau(I) <> -1
    If Tableau(I) Mod 2 = 1 Then Pdd = Pdd + 1
    If Tableau(I) Mod 2 = 0 Then Entven = Entven + 1
    I = I + 1
  Loop
  MsgBox "Il y a respectivement " & Entven & " nombres pairs de pourcentage " & Entven / I & " et " & Pdd & " nombres impairs de pourcentage " & Pdd / I
End Function

Sub test_function()
  T = Array(1, 8, 20, 50, 51, 47, 6, -6, -7, 9, 3, -1)
  Test_Per (T)
End Sub

A+
Bonjour le fil

@Excellearning pour transmettre un tableau dans une fonction il faut que ce soit définit correctement 😉
VB:
Public Function Test_Per(Tableau) As Integer
  Dim Entven As Integer
  Dim Pdd As Integer
  Dim PerEVen As Double
  Dim PerOdd As Double
  Even = 0
  Pdd = 0
  I = 0
  Do While Tableau(I) <> -1
    If Tableau(I) Mod 2 = 1 Then Pdd = Pdd + 1
    If Tableau(I) Mod 2 = 0 Then Entven = Entven + 1
    I = I + 1
  Loop
  MsgBox "Il y a respectivement " & Entven & " nombres pairs de pourcentage " & Entven / I & " et " & Pdd & " nombres impairs de pourcentage " & Pdd / I
End Function

Sub test_function()
  T = Array(1, 8, 20, 50, 51, 47, 6, -6, -7, 9, 3, -1)
  Test_Per (T)
End Sub

A+
 
Merci beaucoup
 
Bonjour à tous,

Pour le fun, le code à ma sauce 😀.

La fonction Test_Per ne sert à rien puisqu'elle ne renvoie rien. Autant la transformer en Sub(). Cela ne change en rien la manière de passer un tableau dans une fonction ou sub.

Le code:
Code:
Option Explicit

Sub somme()
Dim c As Long, s As Long, i As Long
   c = 2: s = 0
   For i = c To 99 Step 3
      s = s + i
      MsgBox "(" & s & " , " & i & ")"
   Next i
   MsgBox "La somme est :" & s
End Sub

Sub Palindrome()
   Dim s As String
   s = LCase(Trim(InputBox("Entrer un texte :")))
   If s = "" Then Exit Sub
   If s = StrReverse(s) Then MsgBox "Le texte " & s & " est un palindrome." Else MsgBox "Le texte " & s & " n'est un palindrome."
End Sub

Public Sub Test_Per(Tableau)
Dim PairS As Long, Impairs As Long, x
   For Each x In Tableau
      If x = -1 Then Exit For
      If x Mod 2 = 0 Then PairS = PairS + 1 Else Impairs = Impairs + 1
   Next x
   MsgBox "Il y a " & PairS & " nombres pairs (" & Format(PairS / (PairS + Impairs), ".0%") & ")" & vbLf & _
          "Il y a " & Impairs & " nombres impairs (" & Format(Impairs / (PairS + Impairs), ".0%") & ")"
End Sub

Sub test_function()
Dim T
  T = Array(1, 8, 20, 50, 51, 47, 6, -6, -7, 9, 3, -1)
  Test_Per T
End Sub
 
Dernière édition:
Merci beaucoup
 
- 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

Réponses
1
Affichages
71
Réponses
6
Affichages
260
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…