appel d'une macro

M

mumu

Guest
Bonjour à tous,

C'est avec bonheur que je découvre votre forum.
Voilà mon problème :
J'ai un fichier dans lequel j'ai plusieurs feuilles, chacune représentant une facture et une feuille de prix qui contient, pour chaque référence de produit, son libellé et son prix. Je veux créer une feuille récapitulative, par référence.

J'ai réussi à lire toutes les lignes d'une facture.
Je veux maintenant créer une autre macro qui recherche la référence du produit dans la feuille recap et dans la feuille prix. J'appellerai cette macro depuis la macro qui lit chaque ligne facture.
Le souci est que je ne sais pas comment appeler cette "sous"-macro à partir de la première macro.

De plus, j'ai un autre soucis. J'ai créer une boucle pour lire toutes les feuilles du fichier :
For Each Worksheet In Workbooks
Lecture des lignes référence
Next
Le problème est qu'il ne passe pas à la feuille suivante.

J'espère avoir été suffisamment claire et je vous remercie à l'avance de vous pencher sur mes problèmes.
 
M

mumu

Guest
Je pense qu'il vaut mieux joindre le source que j'ai déjà écrit :

Sub macro()

Dim PremLigne As Integer '1ère ligne référence
Dim IndiceRef As Integer 'compteur
Dim NomFeuille As String 'Nom de la Feuille dans la boucle For Each WorkSheet
Dim CarFeuille As String '1er caractère du nom de la feuille
Dim RefProduit As String 'Référence produit
Dim RefCouleur As String 'Référence couleur produit
Dim Montant As Double 'Montant Facture

Sheets(4).Select
For Each Worksheet In Workbooks 'Boucle des feuilles

NomFeuille = ActiveSheet.Name 'récupère le nom de la feuille
CarFeuille = Left(NomFeuille, 1) 'Renvoie la 1ère lettre du nom de la feuille

If UCase(CarFeuille) = "F" Then 'on est sur une feuille de facture
'--> rechercher le mot REF
ActiveSheet.Cells.Find _
(What:="REF", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False).Activate

PremLigne = (Selection.Range("A1").Row + 1) 'Initialiser Indice de boucle sur les références

For IndiceRef = PremLigne To 100 'Boucle des cellules
ActiveCell.Select
If IsEmpty(ActiveCell) Then
ActiveCell.Offset(1, 0).Select
If IsEmpty(ActiveCell) Then '2 lignes vides à la suite
GoTo FinFacture '---> Fin de la facture
Else
RefProduit = ActiveSheet.Cells(IndiceRef, 3).Value
RefCouleur = ActiveSheet.Cells(IndiceRef, 4).Value
Montant = ActiveSheet.Cells(IndiceRef, 12).Value
ActiveCell.Offset(1, 0).Select
' Rechercher le produit dans la feuille recap
' cumuler le montant
End If
Next
End If
FinFacture:
Next
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 854
Membres
103 975
dernier inscrit
denry