Bonjour,
J'ai besoin d'un coup de main
J'ai une grande série de données Excel. Sur VBA j'ai créé un code qui m'aide à trié les données selon des critères spécifiques et qui permet de créer un tableau avec les données filtrée. Mon problème c'est que j'ai fait ce code dans une fonction pour faciliter la tache de l'utilisateur. Or dans le cadre de la fonction je ne peux pas afficher que la première cellule du tableau filtré. Donc j'ai crée une macro test qui me permet de récupérer les données du tableau sur une feuille mais cette macro n'est pas exécuter automatiquement.
En fait, je souhaite que vous me dites s'il est possible d'exécuter une macro avec une fonction vba.
Voilà mon code:
Dim tableau, cel As Range
Dim i, j, l, k
Function TableauCours(Contrat)
On Error Resume Next
ligtbl = 1
k = ActiveCell.Column
'détection taille du tableau principal
Do
i = 2
l = 0
Do While Cells(i, 1) <> ""
If Cells(i, 2) = Contrat Then
l = l + 1
End If
i = i + 1
Loop
Loop Until Cells(i, 1) = ""
'initialisation du tableau cible
ReDim tableau(1 To l, 1 To 6)
'remplissage du tableau cible avec élément du tableau principal
For n = 2 To i - 1
If Cells(n, 2) = Contrat Then
tableau(ligtbl, 1) = Cells(n, 1)
tableau(ligtbl, 2) = Cells(n, 2)
tableau(ligtbl, 3) = Cells(n, 3)
tableau(ligtbl, 4) = Cells(n, 4)
tableau(ligtbl, 5) = Cells(n, 5)
tableau(ligtbl, 6) = Cells(n, 6)
ligtbl = ligtbl + 1
End If
Next n
'résultat de la fonction
TableauCours = Contrat
'executer le test
TableauCours.Run ("Test")
End Function
Sub Test()
For u = 1 To l
For v = 1 To 6
Cells(ActiveCell.Row + u, ActiveCell.Column + v - 1).Value = tableau(u, v)
'MsgBox tableau(u, v)
Next v
Next u
End Sub
J'ai besoin d'un coup de main
J'ai une grande série de données Excel. Sur VBA j'ai créé un code qui m'aide à trié les données selon des critères spécifiques et qui permet de créer un tableau avec les données filtrée. Mon problème c'est que j'ai fait ce code dans une fonction pour faciliter la tache de l'utilisateur. Or dans le cadre de la fonction je ne peux pas afficher que la première cellule du tableau filtré. Donc j'ai crée une macro test qui me permet de récupérer les données du tableau sur une feuille mais cette macro n'est pas exécuter automatiquement.
En fait, je souhaite que vous me dites s'il est possible d'exécuter une macro avec une fonction vba.
Voilà mon code:
Dim tableau, cel As Range
Dim i, j, l, k
Function TableauCours(Contrat)
On Error Resume Next
ligtbl = 1
k = ActiveCell.Column
'détection taille du tableau principal
Do
i = 2
l = 0
Do While Cells(i, 1) <> ""
If Cells(i, 2) = Contrat Then
l = l + 1
End If
i = i + 1
Loop
Loop Until Cells(i, 1) = ""
'initialisation du tableau cible
ReDim tableau(1 To l, 1 To 6)
'remplissage du tableau cible avec élément du tableau principal
For n = 2 To i - 1
If Cells(n, 2) = Contrat Then
tableau(ligtbl, 1) = Cells(n, 1)
tableau(ligtbl, 2) = Cells(n, 2)
tableau(ligtbl, 3) = Cells(n, 3)
tableau(ligtbl, 4) = Cells(n, 4)
tableau(ligtbl, 5) = Cells(n, 5)
tableau(ligtbl, 6) = Cells(n, 6)
ligtbl = ligtbl + 1
End If
Next n
'résultat de la fonction
TableauCours = Contrat
'executer le test
TableauCours.Run ("Test")
End Function
Sub Test()
For u = 1 To l
For v = 1 To 6
Cells(ActiveCell.Row + u, ActiveCell.Column + v - 1).Value = tableau(u, v)
'MsgBox tableau(u, v)
Next v
Next u
End Sub