Bonjour à tous,
je bloque et rebloque sur certainement pas grand chose, mais bon j'y vois
plus d'où mon appel à l'aide !
j'ai un formulaire qui liste dans une ListView1 toutes les refs de mes
articles en stock sur une feuille STOCK
Jusque là tout va bien
Quand je clique sur une Ref dans la ListBoxArticles, je veux lister dans le
formulaire UsfDetailArticle, la liste des sorties pour cet article qui est
contenue dans la feuille SORTIES de mon classeur
je me suis appuyée sur un modèle de Flo Cabon qui fonctionne parfaitement,
mais voilà à chaque fois, j'ai le même code erreur "erreur d'exécution 1004 -
la méthode range de l'objet global a échoué sur ma ligne de code :
Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
=================== > voici le code du formulaire :
= > Private Sub ListBoxArticles_Click()
'dès que l'on clique sur l'article, on affiche dans le formulaire
usfDetailArticle les entrées et sorties de stock de l'article
NumArticle = ListBoxArticles.Value
With Sheets("SORTIES").Range("A:A")
'on commence par rechercher dans la feuille des sorties le N° de ligne
correspondant à l'article sélectionné
Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
'la variable Lig, correspondant au numéro de la ligne trouvée, est définie
comme une variable
'publique dans le module général déclarations. Ceci permet de passer sa
valeur d'un userform à un autre.
If Not c Is Nothing Then Lig = c.Row
End With
Dim Critere As String
If NumArticle <> -1 Then
Critere = Critere & "(SORTIES!A2 = """ & NumArticle & """) * "
End If
'à ce stade le critère se termine par *... On ajoute donc un 1. Un critère
renvoie normalement
'vrai ou faux. En le multipliant par 1 il renvoie 1 ou 0 ce qui est
inter^rété de la même façon par excel.
Critere = "=" & Critere & "1"
Sheets("FILTRE SORTIES").Range("A2").Value = Critere
'on utilise ensuite les critères de choix dans un filtre élaboré sur une
feuille masquée
Sheets("FILTRE SORTIES").Activate
Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
'Si aucune sortie ne correspond à l'article sélectionné
If Range("FILTRE SORTIES!A5").Value = "" Then
MsgBox ("Aucune sortie pour ce produit")
'S'il y a plus d'une sortie répondant au critère autrement dit si B6 non vide
'on réaffiche les sorties dans une zone de liste
'pour cela on nomme "Fiches Filtrées" la plage contenant les sorties de
l'article sélectionné.
ElseIf Range("FILTRE SORTIES!A6").Value <> "" Then
ActiveWorkbook.Names.Add Name:="FichesFiltrées", RefersToR1C1:= _
"=OFFSET(FILTRE SORTIES!R5C1,,,COUNTA(FILTRE SORTIES!C1)-1)"
'sinon on récupère son numéro de ligne et on affiche la fiche article dans
le userform UsfDetailArticle
Else
NumArticle = Range("A5").Value
With Sheets("SORTIES").Range("A:A")
Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then Lig = c.Row
End With
UsfDetailArticle.Show
End If
End Sub
================= > Quelqu'un a t il une idée de ce qui coince ?
d'avance merci à tous
Bonjour à tous,
je bloque et rebloque sur certainement pas grand chose, mais bon j'y vois
plus d'où mon appel à l'aide !
j'ai un formulaire qui liste dans une ListView1 toutes les refs de mes
articles en stock sur une feuille STOCK
Jusque là tout va bien
Quand je clique sur une Ref dans la ListBoxArticles, je veux lister dans le
formulaire UsfDetailArticle, la liste des sorties pour cet article qui est
contenue dans la feuille SORTIES de mon classeur
je me suis appuyée sur un modèle de Flo Cabon qui fonctionne parfaitement,
mais voilà à chaque fois, j'ai le même code erreur "erreur d'exécution 1004 -
la méthode range de l'objet global a échoué sur ma ligne de code :
Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
=================== > voici le code du formulaire :
= > Private Sub ListBoxArticles_Click()
'dès que l'on clique sur l'article, on affiche dans le formulaire
usfDetailArticle les entrées et sorties de stock de l'article
NumArticle = ListBoxArticles.Value
With Sheets("SORTIES").Range("A:A")
'on commence par rechercher dans la feuille des sorties le N° de ligne
correspondant à l'article sélectionné
Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
'la variable Lig, correspondant au numéro de la ligne trouvée, est définie
comme une variable
'publique dans le module général déclarations. Ceci permet de passer sa
valeur d'un userform à un autre.
If Not c Is Nothing Then Lig = c.Row
End With
Dim Critere As String
If NumArticle <> -1 Then
Critere = Critere & "(SORTIES!A2 = """ & NumArticle & """) * "
End If
'à ce stade le critère se termine par *... On ajoute donc un 1. Un critère
renvoie normalement
'vrai ou faux. En le multipliant par 1 il renvoie 1 ou 0 ce qui est
inter^rété de la même façon par excel.
Critere = "=" & Critere & "1"
Sheets("FILTRE SORTIES").Range("A2").Value = Critere
'on utilise ensuite les critères de choix dans un filtre élaboré sur une
feuille masquée
Sheets("FILTRE SORTIES").Activate
Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
'Si aucune sortie ne correspond à l'article sélectionné
If Range("FILTRE SORTIES!A5").Value = "" Then
MsgBox ("Aucune sortie pour ce produit")
'S'il y a plus d'une sortie répondant au critère autrement dit si B6 non vide
'on réaffiche les sorties dans une zone de liste
'pour cela on nomme "Fiches Filtrées" la plage contenant les sorties de
l'article sélectionné.
ElseIf Range("FILTRE SORTIES!A6").Value <> "" Then
ActiveWorkbook.Names.Add Name:="FichesFiltrées", RefersToR1C1:= _
"=OFFSET(FILTRE SORTIES!R5C1,,,COUNTA(FILTRE SORTIES!C1)-1)"
'sinon on récupère son numéro de ligne et on affiche la fiche article dans
le userform UsfDetailArticle
Else
NumArticle = Range("A5").Value
With Sheets("SORTIES").Range("A:A")
Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then Lig = c.Row
End With
UsfDetailArticle.Show
End If
End Sub
================= > Quelqu'un a t il une idée de ce qui coince ?
d'avance merci à tous
Bonjour à tous,
je bloque et rebloque sur certainement pas grand chose, mais bon j'y vois
plus d'où mon appel à l'aide !
j'ai un formulaire qui liste dans une ListView1 toutes les refs de mes
articles en stock sur une feuille STOCK
Jusque là tout va bien
Quand je clique sur une Ref dans la ListBoxArticles, je veux lister dans le
formulaire UsfDetailArticle, la liste des sorties pour cet article qui est
contenue dans la feuille SORTIES de mon classeur
je me suis appuyée sur un modèle de Flo Cabon qui fonctionne parfaitement,
mais voilà à chaque fois, j'ai le même code erreur "erreur d'exécution 1004 -
la méthode range de l'objet global a échoué sur ma ligne de code :
Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
=================== > voici le code du formulaire :
= > Private Sub ListBoxArticles_Click()
'dès que l'on clique sur l'article, on affiche dans le formulaire
usfDetailArticle les entrées et sorties de stock de l'article
NumArticle = ListBoxArticles.Value
With Sheets("SORTIES").Range("A:A")
'on commence par rechercher dans la feuille des sorties le N° de ligne
correspondant à l'article sélectionné
Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
'la variable Lig, correspondant au numéro de la ligne trouvée, est définie
comme une variable
'publique dans le module général déclarations. Ceci permet de passer sa
valeur d'un userform à un autre.
If Not c Is Nothing Then Lig = c.Row
End With
Dim Critere As String
If NumArticle <> -1 Then
Critere = Critere & "(SORTIES!A2 = """ & NumArticle & """) * "
End If
'à ce stade le critère se termine par *... On ajoute donc un 1. Un critère
renvoie normalement
'vrai ou faux. En le multipliant par 1 il renvoie 1 ou 0 ce qui est
inter^rété de la même façon par excel.
Critere = "=" & Critere & "1"
Sheets("FILTRE SORTIES").Range("A2").Value = Critere
'on utilise ensuite les critères de choix dans un filtre élaboré sur une
feuille masquée
Sheets("FILTRE SORTIES").Activate
Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
'Si aucune sortie ne correspond à l'article sélectionné
If Range("FILTRE SORTIES!A5").Value = "" Then
MsgBox ("Aucune sortie pour ce produit")
'S'il y a plus d'une sortie répondant au critère autrement dit si B6 non vide
'on réaffiche les sorties dans une zone de liste
'pour cela on nomme "Fiches Filtrées" la plage contenant les sorties de
l'article sélectionné.
ElseIf Range("FILTRE SORTIES!A6").Value <> "" Then
ActiveWorkbook.Names.Add Name:="FichesFiltrées", RefersToR1C1:= _
"=OFFSET(FILTRE SORTIES!R5C1,,,COUNTA(FILTRE SORTIES!C1)-1)"
'sinon on récupère son numéro de ligne et on affiche la fiche article dans
le userform UsfDetailArticle
Else
NumArticle = Range("A5").Value
With Sheets("SORTIES").Range("A:A")
Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then Lig = c.Row
End With
UsfDetailArticle.Show
End If
End Sub
================= > Quelqu'un a t il une idée de ce qui coince ?
d'avance merci à tous
Dans cette ligne de code :
Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
Devant chaque item Range, met le nom de la feuille auquel appartient
l'objet "Range". videmment tu adaptes "NomFeuille" pour le nom
vritable de l'onglet de la feuille dsigne.
Worksheets("NomFeuille").Range("zonebdd").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Worksheets("NomFeuille").Range("A1:A2"), _
CopyToRange:=Worksheets("NomFeuille").Range("A4:O4"), Unique:úlse
"Franoise" a crit dans le message de groupe de
discussion :
Bonjour tous,
je bloque et rebloque sur certainement pas grand chose, mais bon j'y vois
plus d'o mon appel l'aide !
j'ai un formulaire qui liste dans une ListView1 toutes les refs de mes
articles en stock sur une feuille STOCK
Jusque l tout va bien
Quand je clique sur une Ref dans la ListBoxArticles, je veux lister dans le
formulaire UsfDetailArticle, la liste des sorties pour cet article qui est
contenue dans la feuille SORTIES de mon classeur
je me suis appuye sur un modle de Flo Cabon qui fonctionne parfaitement,
mais voil chaque fois, j'ai le mme code erreur "erreur d'excution 1004 -
la mthode range de l'objet global a chou sur ma ligne de code :
Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
=================== > voici le code du formulaire :
= > Private Sub ListBoxArticles_Click()
'ds que l'on clique sur l'article, on affiche dans le formulaire
usfDetailArticle les entres et sorties de stock de l'article
NumArticle = ListBoxArticles.Value
With Sheets("SORTIES").Range("A:A")
'on commence par rechercher dans la feuille des sorties le N de ligne
correspondant l'article slectionn
Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
'la variable Lig, correspondant au numro de la ligne trouve, est dfinie
comme une variable
'publique dans le module gnral dclarations. Ceci permet de passer sa
valeur d'un userform un autre.
If Not c Is Nothing Then Lig = c.Row
End With
Dim Critere As String
If NumArticle <> -1 Then
Critere = Critere & "(SORTIES!A2 = """ & NumArticle & """) * "
End If
' ce stade le critre se termine par *... On ajoute donc un 1. Un critre
renvoie normalement
'vrai ou faux. En le multipliant par 1 il renvoie 1 ou 0 ce qui est
inter^rt de la mme faon par excel.
Critere = "=" & Critere & "1"
Sheets("FILTRE SORTIES").Range("A2").Value = Critere
'on utilise ensuite les critres de choix dans un filtre labor sur une
feuille masque
Sheets("FILTRE SORTIES").Activate
Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
'Si aucune sortie ne correspond l'article slectionn
If Range("FILTRE SORTIES!A5").Value = "" Then
MsgBox ("Aucune sortie pour ce produit")
'S'il y a plus d'une sortie rpondant au critre autrement dit si B6 non vide
'on raffiche les sorties dans une zone de liste
'pour cela on nomme "Fiches Filtres" la plage contenant les sorties de
l'article slectionn.
ElseIf Range("FILTRE SORTIES!A6").Value <> "" Then
ActiveWorkbook.Names.Add Name:="FichesFiltres", RefersToR1C1:= _
"=OFFSET(FILTRE SORTIES!R5C1,,,COUNTA(FILTRE SORTIES!C1)-1)"
'sinon on rcupre son numro de ligne et on affiche la fiche article dans
le userform UsfDetailArticle
Else
NumArticle = Range("A5").Value
With Sheets("SORTIES").Range("A:A")
Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then Lig = c.Row
End With
UsfDetailArticle.Show
End If
End Sub
================= > Quelqu'un a t il une ide de ce qui coince ?
d'avance merci tous
Dans cette ligne de code :
Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
Devant chaque item Range, met le nom de la feuille auquel appartient
l'objet "Range". videmment tu adaptes "NomFeuille" pour le nom
vritable de l'onglet de la feuille dsigne.
Worksheets("NomFeuille").Range("zonebdd").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Worksheets("NomFeuille").Range("A1:A2"), _
CopyToRange:=Worksheets("NomFeuille").Range("A4:O4"), Unique:úlse
"Franoise" <Franoise@discussions.microsoft.com> a crit dans le message de groupe de
discussion : 9A62B004-A8A9-46F9-9055-B7C1F7370EE6@microsoft.com...
Bonjour tous,
je bloque et rebloque sur certainement pas grand chose, mais bon j'y vois
plus d'o mon appel l'aide !
j'ai un formulaire qui liste dans une ListView1 toutes les refs de mes
articles en stock sur une feuille STOCK
Jusque l tout va bien
Quand je clique sur une Ref dans la ListBoxArticles, je veux lister dans le
formulaire UsfDetailArticle, la liste des sorties pour cet article qui est
contenue dans la feuille SORTIES de mon classeur
je me suis appuye sur un modle de Flo Cabon qui fonctionne parfaitement,
mais voil chaque fois, j'ai le mme code erreur "erreur d'excution 1004 -
la mthode range de l'objet global a chou sur ma ligne de code :
Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
=================== > voici le code du formulaire :
= > Private Sub ListBoxArticles_Click()
'ds que l'on clique sur l'article, on affiche dans le formulaire
usfDetailArticle les entres et sorties de stock de l'article
NumArticle = ListBoxArticles.Value
With Sheets("SORTIES").Range("A:A")
'on commence par rechercher dans la feuille des sorties le N de ligne
correspondant l'article slectionn
Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
'la variable Lig, correspondant au numro de la ligne trouve, est dfinie
comme une variable
'publique dans le module gnral dclarations. Ceci permet de passer sa
valeur d'un userform un autre.
If Not c Is Nothing Then Lig = c.Row
End With
Dim Critere As String
If NumArticle <> -1 Then
Critere = Critere & "(SORTIES!A2 = """ & NumArticle & """) * "
End If
' ce stade le critre se termine par *... On ajoute donc un 1. Un critre
renvoie normalement
'vrai ou faux. En le multipliant par 1 il renvoie 1 ou 0 ce qui est
inter^rt de la mme faon par excel.
Critere = "=" & Critere & "1"
Sheets("FILTRE SORTIES").Range("A2").Value = Critere
'on utilise ensuite les critres de choix dans un filtre labor sur une
feuille masque
Sheets("FILTRE SORTIES").Activate
Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
'Si aucune sortie ne correspond l'article slectionn
If Range("FILTRE SORTIES!A5").Value = "" Then
MsgBox ("Aucune sortie pour ce produit")
'S'il y a plus d'une sortie rpondant au critre autrement dit si B6 non vide
'on raffiche les sorties dans une zone de liste
'pour cela on nomme "Fiches Filtres" la plage contenant les sorties de
l'article slectionn.
ElseIf Range("FILTRE SORTIES!A6").Value <> "" Then
ActiveWorkbook.Names.Add Name:="FichesFiltres", RefersToR1C1:= _
"=OFFSET(FILTRE SORTIES!R5C1,,,COUNTA(FILTRE SORTIES!C1)-1)"
'sinon on rcupre son numro de ligne et on affiche la fiche article dans
le userform UsfDetailArticle
Else
NumArticle = Range("A5").Value
With Sheets("SORTIES").Range("A:A")
Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then Lig = c.Row
End With
UsfDetailArticle.Show
End If
End Sub
================= > Quelqu'un a t il une ide de ce qui coince ?
d'avance merci tous
Dans cette ligne de code :
Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
Devant chaque item Range, met le nom de la feuille auquel appartient
l'objet "Range". videmment tu adaptes "NomFeuille" pour le nom
vritable de l'onglet de la feuille dsigne.
Worksheets("NomFeuille").Range("zonebdd").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Worksheets("NomFeuille").Range("A1:A2"), _
CopyToRange:=Worksheets("NomFeuille").Range("A4:O4"), Unique:úlse
"Franoise" a crit dans le message de groupe de
discussion :
Bonjour tous,
je bloque et rebloque sur certainement pas grand chose, mais bon j'y vois
plus d'o mon appel l'aide !
j'ai un formulaire qui liste dans une ListView1 toutes les refs de mes
articles en stock sur une feuille STOCK
Jusque l tout va bien
Quand je clique sur une Ref dans la ListBoxArticles, je veux lister dans le
formulaire UsfDetailArticle, la liste des sorties pour cet article qui est
contenue dans la feuille SORTIES de mon classeur
je me suis appuye sur un modle de Flo Cabon qui fonctionne parfaitement,
mais voil chaque fois, j'ai le mme code erreur "erreur d'excution 1004 -
la mthode range de l'objet global a chou sur ma ligne de code :
Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
=================== > voici le code du formulaire :
= > Private Sub ListBoxArticles_Click()
'ds que l'on clique sur l'article, on affiche dans le formulaire
usfDetailArticle les entres et sorties de stock de l'article
NumArticle = ListBoxArticles.Value
With Sheets("SORTIES").Range("A:A")
'on commence par rechercher dans la feuille des sorties le N de ligne
correspondant l'article slectionn
Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
'la variable Lig, correspondant au numro de la ligne trouve, est dfinie
comme une variable
'publique dans le module gnral dclarations. Ceci permet de passer sa
valeur d'un userform un autre.
If Not c Is Nothing Then Lig = c.Row
End With
Dim Critere As String
If NumArticle <> -1 Then
Critere = Critere & "(SORTIES!A2 = """ & NumArticle & """) * "
End If
' ce stade le critre se termine par *... On ajoute donc un 1. Un critre
renvoie normalement
'vrai ou faux. En le multipliant par 1 il renvoie 1 ou 0 ce qui est
inter^rt de la mme faon par excel.
Critere = "=" & Critere & "1"
Sheets("FILTRE SORTIES").Range("A2").Value = Critere
'on utilise ensuite les critres de choix dans un filtre labor sur une
feuille masque
Sheets("FILTRE SORTIES").Activate
Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
'Si aucune sortie ne correspond l'article slectionn
If Range("FILTRE SORTIES!A5").Value = "" Then
MsgBox ("Aucune sortie pour ce produit")
'S'il y a plus d'une sortie rpondant au critre autrement dit si B6 non vide
'on raffiche les sorties dans une zone de liste
'pour cela on nomme "Fiches Filtres" la plage contenant les sorties de
l'article slectionn.
ElseIf Range("FILTRE SORTIES!A6").Value <> "" Then
ActiveWorkbook.Names.Add Name:="FichesFiltres", RefersToR1C1:= _
"=OFFSET(FILTRE SORTIES!R5C1,,,COUNTA(FILTRE SORTIES!C1)-1)"
'sinon on rcupre son numro de ligne et on affiche la fiche article dans
le userform UsfDetailArticle
Else
NumArticle = Range("A5").Value
With Sheets("SORTIES").Range("A:A")
Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then Lig = c.Row
End With
UsfDetailArticle.Show
End If
End Sub
================= > Quelqu'un a t il une ide de ce qui coince ?
d'avance merci tous
Dans cette ligne de code :
Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
Devant chaque item Range, met le nom de la feuille auquel appartient
l'objet "Range". videmment tu adaptes "NomFeuille" pour le nom
vritable de l'onglet de la feuille dsigne.
Worksheets("NomFeuille").Range("zonebdd").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Worksheets("NomFeuille").Range("A1:A2"), _
CopyToRange:=Worksheets("NomFeuille").Range("A4:O4"), Unique:úlse
"Franoise" a crit dans le message de groupe de
discussion :
Bonjour tous,
je bloque et rebloque sur certainement pas grand chose, mais bon j'y vois
plus d'o mon appel l'aide !
j'ai un formulaire qui liste dans une ListView1 toutes les refs de mes
articles en stock sur une feuille STOCK
Jusque l tout va bien
Quand je clique sur une Ref dans la ListBoxArticles, je veux lister dans le
formulaire UsfDetailArticle, la liste des sorties pour cet article qui est
contenue dans la feuille SORTIES de mon classeur
je me suis appuye sur un modle de Flo Cabon qui fonctionne parfaitement,
mais voil chaque fois, j'ai le mme code erreur "erreur d'excution 1004 -
la mthode range de l'objet global a chou sur ma ligne de code :
Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
=================== > voici le code du formulaire :
= > Private Sub ListBoxArticles_Click()
'ds que l'on clique sur l'article, on affiche dans le formulaire
usfDetailArticle les entres et sorties de stock de l'article
NumArticle = ListBoxArticles.Value
With Sheets("SORTIES").Range("A:A")
'on commence par rechercher dans la feuille des sorties le N de ligne
correspondant l'article slectionn
Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
'la variable Lig, correspondant au numro de la ligne trouve, est dfinie
comme une variable
'publique dans le module gnral dclarations. Ceci permet de passer sa
valeur d'un userform un autre.
If Not c Is Nothing Then Lig = c.Row
End With
Dim Critere As String
If NumArticle <> -1 Then
Critere = Critere & "(SORTIES!A2 = """ & NumArticle & """) * "
End If
' ce stade le critre se termine par *... On ajoute donc un 1. Un critre
renvoie normalement
'vrai ou faux. En le multipliant par 1 il renvoie 1 ou 0 ce qui est
inter^rt de la mme faon par excel.
Critere = "=" & Critere & "1"
Sheets("FILTRE SORTIES").Range("A2").Value = Critere
'on utilise ensuite les critres de choix dans un filtre labor sur une
feuille masque
Sheets("FILTRE SORTIES").Activate
Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
'Si aucune sortie ne correspond l'article slectionn
If Range("FILTRE SORTIES!A5").Value = "" Then
MsgBox ("Aucune sortie pour ce produit")
'S'il y a plus d'une sortie rpondant au critre autrement dit si B6 non vide
'on raffiche les sorties dans une zone de liste
'pour cela on nomme "Fiches Filtres" la plage contenant les sorties de
l'article slectionn.
ElseIf Range("FILTRE SORTIES!A6").Value <> "" Then
ActiveWorkbook.Names.Add Name:="FichesFiltres", RefersToR1C1:= _
"=OFFSET(FILTRE SORTIES!R5C1,,,COUNTA(FILTRE SORTIES!C1)-1)"
'sinon on rcupre son numro de ligne et on affiche la fiche article dans
le userform UsfDetailArticle
Else
NumArticle = Range("A5").Value
With Sheets("SORTIES").Range("A:A")
Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then Lig = c.Row
End With
UsfDetailArticle.Show
End If
End Sub
================= > Quelqu'un a t il une ide de ce qui coince ?
d'avance merci tous
Dans cette ligne de code :
Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
Devant chaque item Range, met le nom de la feuille auquel appartient
l'objet "Range". videmment tu adaptes "NomFeuille" pour le nom
vritable de l'onglet de la feuille dsigne.
Worksheets("NomFeuille").Range("zonebdd").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Worksheets("NomFeuille").Range("A1:A2"), _
CopyToRange:=Worksheets("NomFeuille").Range("A4:O4"), Unique:úlse
"Franoise" <Franoise@discussions.microsoft.com> a crit dans le message de groupe de
discussion : 9A62B004-A8A9-46F9-9055-B7C1F7370EE6@microsoft.com...
Bonjour tous,
je bloque et rebloque sur certainement pas grand chose, mais bon j'y vois
plus d'o mon appel l'aide !
j'ai un formulaire qui liste dans une ListView1 toutes les refs de mes
articles en stock sur une feuille STOCK
Jusque l tout va bien
Quand je clique sur une Ref dans la ListBoxArticles, je veux lister dans le
formulaire UsfDetailArticle, la liste des sorties pour cet article qui est
contenue dans la feuille SORTIES de mon classeur
je me suis appuye sur un modle de Flo Cabon qui fonctionne parfaitement,
mais voil chaque fois, j'ai le mme code erreur "erreur d'excution 1004 -
la mthode range de l'objet global a chou sur ma ligne de code :
Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
=================== > voici le code du formulaire :
= > Private Sub ListBoxArticles_Click()
'ds que l'on clique sur l'article, on affiche dans le formulaire
usfDetailArticle les entres et sorties de stock de l'article
NumArticle = ListBoxArticles.Value
With Sheets("SORTIES").Range("A:A")
'on commence par rechercher dans la feuille des sorties le N de ligne
correspondant l'article slectionn
Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
'la variable Lig, correspondant au numro de la ligne trouve, est dfinie
comme une variable
'publique dans le module gnral dclarations. Ceci permet de passer sa
valeur d'un userform un autre.
If Not c Is Nothing Then Lig = c.Row
End With
Dim Critere As String
If NumArticle <> -1 Then
Critere = Critere & "(SORTIES!A2 = """ & NumArticle & """) * "
End If
' ce stade le critre se termine par *... On ajoute donc un 1. Un critre
renvoie normalement
'vrai ou faux. En le multipliant par 1 il renvoie 1 ou 0 ce qui est
inter^rt de la mme faon par excel.
Critere = "=" & Critere & "1"
Sheets("FILTRE SORTIES").Range("A2").Value = Critere
'on utilise ensuite les critres de choix dans un filtre labor sur une
feuille masque
Sheets("FILTRE SORTIES").Activate
Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
'Si aucune sortie ne correspond l'article slectionn
If Range("FILTRE SORTIES!A5").Value = "" Then
MsgBox ("Aucune sortie pour ce produit")
'S'il y a plus d'une sortie rpondant au critre autrement dit si B6 non vide
'on raffiche les sorties dans une zone de liste
'pour cela on nomme "Fiches Filtres" la plage contenant les sorties de
l'article slectionn.
ElseIf Range("FILTRE SORTIES!A6").Value <> "" Then
ActiveWorkbook.Names.Add Name:="FichesFiltres", RefersToR1C1:= _
"=OFFSET(FILTRE SORTIES!R5C1,,,COUNTA(FILTRE SORTIES!C1)-1)"
'sinon on rcupre son numro de ligne et on affiche la fiche article dans
le userform UsfDetailArticle
Else
NumArticle = Range("A5").Value
With Sheets("SORTIES").Range("A:A")
Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then Lig = c.Row
End With
UsfDetailArticle.Show
End If
End Sub
================= > Quelqu'un a t il une ide de ce qui coince ?
d'avance merci tous
Dans cette ligne de code :
Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
Devant chaque item Range, met le nom de la feuille auquel appartient
l'objet "Range". videmment tu adaptes "NomFeuille" pour le nom
vritable de l'onglet de la feuille dsigne.
Worksheets("NomFeuille").Range("zonebdd").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Worksheets("NomFeuille").Range("A1:A2"), _
CopyToRange:=Worksheets("NomFeuille").Range("A4:O4"), Unique:úlse
"Franoise" a crit dans le message de groupe de
discussion :
Bonjour tous,
je bloque et rebloque sur certainement pas grand chose, mais bon j'y vois
plus d'o mon appel l'aide !
j'ai un formulaire qui liste dans une ListView1 toutes les refs de mes
articles en stock sur une feuille STOCK
Jusque l tout va bien
Quand je clique sur une Ref dans la ListBoxArticles, je veux lister dans le
formulaire UsfDetailArticle, la liste des sorties pour cet article qui est
contenue dans la feuille SORTIES de mon classeur
je me suis appuye sur un modle de Flo Cabon qui fonctionne parfaitement,
mais voil chaque fois, j'ai le mme code erreur "erreur d'excution 1004 -
la mthode range de l'objet global a chou sur ma ligne de code :
Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
=================== > voici le code du formulaire :
= > Private Sub ListBoxArticles_Click()
'ds que l'on clique sur l'article, on affiche dans le formulaire
usfDetailArticle les entres et sorties de stock de l'article
NumArticle = ListBoxArticles.Value
With Sheets("SORTIES").Range("A:A")
'on commence par rechercher dans la feuille des sorties le N de ligne
correspondant l'article slectionn
Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
'la variable Lig, correspondant au numro de la ligne trouve, est dfinie
comme une variable
'publique dans le module gnral dclarations. Ceci permet de passer sa
valeur d'un userform un autre.
If Not c Is Nothing Then Lig = c.Row
End With
Dim Critere As String
If NumArticle <> -1 Then
Critere = Critere & "(SORTIES!A2 = """ & NumArticle & """) * "
End If
' ce stade le critre se termine par *... On ajoute donc un 1. Un critre
renvoie normalement
'vrai ou faux. En le multipliant par 1 il renvoie 1 ou 0 ce qui est
inter^rt de la mme faon par excel.
Critere = "=" & Critere & "1"
Sheets("FILTRE SORTIES").Range("A2").Value = Critere
'on utilise ensuite les critres de choix dans un filtre labor sur une
feuille masque
Sheets("FILTRE SORTIES").Activate
Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
'Si aucune sortie ne correspond l'article slectionn
If Range("FILTRE SORTIES!A5").Value = "" Then
MsgBox ("Aucune sortie pour ce produit")
'S'il y a plus d'une sortie rpondant au critre autrement dit si B6 non vide
'on raffiche les sorties dans une zone de liste
'pour cela on nomme "Fiches Filtres" la plage contenant les sorties de
l'article slectionn.
ElseIf Range("FILTRE SORTIES!A6").Value <> "" Then
ActiveWorkbook.Names.Add Name:="FichesFiltres", RefersToR1C1:= _
"=OFFSET(FILTRE SORTIES!R5C1,,,COUNTA(FILTRE SORTIES!C1)-1)"
'sinon on rcupre son numro de ligne et on affiche la fiche article dans
le userform UsfDetailArticle
Else
NumArticle = Range("A5").Value
With Sheets("SORTIES").Range("A:A")
Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then Lig = c.Row
End With
UsfDetailArticle.Show
End If
End Sub
================= > Quelqu'un a t il une ide de ce qui coince ?
d'avance merci tous
| Worksheets("FILTRE SORTIES").Range("zonebdd")
Dans ladite feuille, Il n'y a pas de plage "zonebdd" dans la feuille
voir dans le classeur. Dans un tel cas, il est difficile que cela fonctionne !
(le classeur a t ouvert pas excel 2007)
En passant, un filtre labor requiert obligatoirement des tiquettes de colonnes.
"Franoise" a crit dans le message de groupe de
discussion :
Merci tous les deux pour votre aide, j'ai test le code de MichDenis, mais
toujours la mme erreur, aussi sur le conseil de Daniel je vous joins le
fichier pour voir ce qui cloche, j'avoue que je n'y vois plus rien !
http://www.cijoint.fr/cjlink.php?file=cj200903/cijCMrLV3f.xls
d'avance merci
"MichDenis" a crit :
> Dans cette ligne de code :
> Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
>
> Devant chaque item Range, met le nom de la feuille auquel appartient
> l'objet "Range". videmment tu adaptes "NomFeuille" pour le nom
> vritable de l'onglet de la feuille dsigne.
>
> Worksheets("NomFeuille").Range("zonebdd").AdvancedFilter Action:=xlFilterCopy, _
> CriteriaRange:=Worksheets("NomFeuille").Range("A1:A2"), _
> CopyToRange:=Worksheets("NomFeuille").Range("A4:O4"), Unique:úlse
>
>
>
>
>
> "Franoise" a crit dans le message de groupe de
> discussion :
> Bonjour tous,
>
> je bloque et rebloque sur certainement pas grand chose, mais bon j'y vois
> plus d'o mon appel l'aide !
>
> j'ai un formulaire qui liste dans une ListView1 toutes les refs de mes
> articles en stock sur une feuille STOCK
>
> Jusque l tout va bien
> Quand je clique sur une Ref dans la ListBoxArticles, je veux lister dans le
> formulaire UsfDetailArticle, la liste des sorties pour cet article qui est
> contenue dans la feuille SORTIES de mon classeur
>
> je me suis appuye sur un modle de Flo Cabon qui fonctionne parfaitement,
> mais voil chaque fois, j'ai le mme code erreur "erreur d'excution 1004 -
> la mthode range de l'objet global a chou sur ma ligne de code :
> Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
> =================== > > voici le code du formulaire :
> = > > Private Sub ListBoxArticles_Click()
> 'ds que l'on clique sur l'article, on affiche dans le formulaire
> usfDetailArticle les entres et sorties de stock de l'article
> NumArticle = ListBoxArticles.Value
>
> With Sheets("SORTIES").Range("A:A")
> 'on commence par rechercher dans la feuille des sorties le N de ligne
> correspondant l'article slectionn
> Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
> 'la variable Lig, correspondant au numro de la ligne trouve, est dfinie
> comme une variable
> 'publique dans le module gnral dclarations. Ceci permet de passer sa
> valeur d'un userform un autre.
>
> If Not c Is Nothing Then Lig = c.Row
> End With
>
> Dim Critere As String
>
>
> If NumArticle <> -1 Then
> Critere = Critere & "(SORTIES!A2 = """ & NumArticle & """) * "
> End If
>
> ' ce stade le critre se termine par *... On ajoute donc un 1. Un critre
> renvoie normalement
> 'vrai ou faux. En le multipliant par 1 il renvoie 1 ou 0 ce qui est
> inter^rt de la mme faon par excel.
> Critere = "=" & Critere & "1"
> Sheets("FILTRE SORTIES").Range("A2").Value = Critere
>
>
> 'on utilise ensuite les critres de choix dans un filtre labor sur une
> feuille masque
> Sheets("FILTRE SORTIES").Activate
> Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
> 'Si aucune sortie ne correspond l'article slectionn
> If Range("FILTRE SORTIES!A5").Value = "" Then
> MsgBox ("Aucune sortie pour ce produit")
> 'S'il y a plus d'une sortie rpondant au critre autrement dit si B6 non vide
> 'on raffiche les sorties dans une zone de liste
> 'pour cela on nomme "Fiches Filtres" la plage contenant les sorties de
> l'article slectionn.
>
>
> ElseIf Range("FILTRE SORTIES!A6").Value <> "" Then
> ActiveWorkbook.Names.Add Name:="FichesFiltres", RefersToR1C1:= _
> "=OFFSET(FILTRE SORTIES!R5C1,,,COUNTA(FILTRE SORTIES!C1)-1)"
>
> 'sinon on rcupre son numro de ligne et on affiche la fiche article dans
> le userform UsfDetailArticle
> Else
> NumArticle = Range("A5").Value
> With Sheets("SORTIES").Range("A:A")
> Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
> If Not c Is Nothing Then Lig = c.Row
> End With
> UsfDetailArticle.Show
>
> End If
>
> End Sub
> ================= > > Quelqu'un a t il une ide de ce qui coince ?
> d'avance merci tous
>
>
| Worksheets("FILTRE SORTIES").Range("zonebdd")
Dans ladite feuille, Il n'y a pas de plage "zonebdd" dans la feuille
voir dans le classeur. Dans un tel cas, il est difficile que cela fonctionne !
(le classeur a t ouvert pas excel 2007)
En passant, un filtre labor requiert obligatoirement des tiquettes de colonnes.
"Franoise" <Franoise@discussions.microsoft.com> a crit dans le message de groupe de
discussion : 8D98BBF6-8A8C-4EF6-BD0E-DC7B74FA373C@microsoft.com...
Merci tous les deux pour votre aide, j'ai test le code de MichDenis, mais
toujours la mme erreur, aussi sur le conseil de Daniel je vous joins le
fichier pour voir ce qui cloche, j'avoue que je n'y vois plus rien !
http://www.cijoint.fr/cjlink.php?file=cj200903/cijCMrLV3f.xls
d'avance merci
"MichDenis" a crit :
> Dans cette ligne de code :
> Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
>
> Devant chaque item Range, met le nom de la feuille auquel appartient
> l'objet "Range". videmment tu adaptes "NomFeuille" pour le nom
> vritable de l'onglet de la feuille dsigne.
>
> Worksheets("NomFeuille").Range("zonebdd").AdvancedFilter Action:=xlFilterCopy, _
> CriteriaRange:=Worksheets("NomFeuille").Range("A1:A2"), _
> CopyToRange:=Worksheets("NomFeuille").Range("A4:O4"), Unique:úlse
>
>
>
>
>
> "Franoise" <Franoise@discussions.microsoft.com> a crit dans le message de groupe de
> discussion : 9A62B004-A8A9-46F9-9055-B7C1F7370EE6@microsoft.com...
> Bonjour tous,
>
> je bloque et rebloque sur certainement pas grand chose, mais bon j'y vois
> plus d'o mon appel l'aide !
>
> j'ai un formulaire qui liste dans une ListView1 toutes les refs de mes
> articles en stock sur une feuille STOCK
>
> Jusque l tout va bien
> Quand je clique sur une Ref dans la ListBoxArticles, je veux lister dans le
> formulaire UsfDetailArticle, la liste des sorties pour cet article qui est
> contenue dans la feuille SORTIES de mon classeur
>
> je me suis appuye sur un modle de Flo Cabon qui fonctionne parfaitement,
> mais voil chaque fois, j'ai le mme code erreur "erreur d'excution 1004 -
> la mthode range de l'objet global a chou sur ma ligne de code :
> Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
> =================== > > voici le code du formulaire :
> = > > Private Sub ListBoxArticles_Click()
> 'ds que l'on clique sur l'article, on affiche dans le formulaire
> usfDetailArticle les entres et sorties de stock de l'article
> NumArticle = ListBoxArticles.Value
>
> With Sheets("SORTIES").Range("A:A")
> 'on commence par rechercher dans la feuille des sorties le N de ligne
> correspondant l'article slectionn
> Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
> 'la variable Lig, correspondant au numro de la ligne trouve, est dfinie
> comme une variable
> 'publique dans le module gnral dclarations. Ceci permet de passer sa
> valeur d'un userform un autre.
>
> If Not c Is Nothing Then Lig = c.Row
> End With
>
> Dim Critere As String
>
>
> If NumArticle <> -1 Then
> Critere = Critere & "(SORTIES!A2 = """ & NumArticle & """) * "
> End If
>
> ' ce stade le critre se termine par *... On ajoute donc un 1. Un critre
> renvoie normalement
> 'vrai ou faux. En le multipliant par 1 il renvoie 1 ou 0 ce qui est
> inter^rt de la mme faon par excel.
> Critere = "=" & Critere & "1"
> Sheets("FILTRE SORTIES").Range("A2").Value = Critere
>
>
> 'on utilise ensuite les critres de choix dans un filtre labor sur une
> feuille masque
> Sheets("FILTRE SORTIES").Activate
> Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
> 'Si aucune sortie ne correspond l'article slectionn
> If Range("FILTRE SORTIES!A5").Value = "" Then
> MsgBox ("Aucune sortie pour ce produit")
> 'S'il y a plus d'une sortie rpondant au critre autrement dit si B6 non vide
> 'on raffiche les sorties dans une zone de liste
> 'pour cela on nomme "Fiches Filtres" la plage contenant les sorties de
> l'article slectionn.
>
>
> ElseIf Range("FILTRE SORTIES!A6").Value <> "" Then
> ActiveWorkbook.Names.Add Name:="FichesFiltres", RefersToR1C1:= _
> "=OFFSET(FILTRE SORTIES!R5C1,,,COUNTA(FILTRE SORTIES!C1)-1)"
>
> 'sinon on rcupre son numro de ligne et on affiche la fiche article dans
> le userform UsfDetailArticle
> Else
> NumArticle = Range("A5").Value
> With Sheets("SORTIES").Range("A:A")
> Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
> If Not c Is Nothing Then Lig = c.Row
> End With
> UsfDetailArticle.Show
>
> End If
>
> End Sub
> ================= > > Quelqu'un a t il une ide de ce qui coince ?
> d'avance merci tous
>
>
| Worksheets("FILTRE SORTIES").Range("zonebdd")
Dans ladite feuille, Il n'y a pas de plage "zonebdd" dans la feuille
voir dans le classeur. Dans un tel cas, il est difficile que cela fonctionne !
(le classeur a t ouvert pas excel 2007)
En passant, un filtre labor requiert obligatoirement des tiquettes de colonnes.
"Franoise" a crit dans le message de groupe de
discussion :
Merci tous les deux pour votre aide, j'ai test le code de MichDenis, mais
toujours la mme erreur, aussi sur le conseil de Daniel je vous joins le
fichier pour voir ce qui cloche, j'avoue que je n'y vois plus rien !
http://www.cijoint.fr/cjlink.php?file=cj200903/cijCMrLV3f.xls
d'avance merci
"MichDenis" a crit :
> Dans cette ligne de code :
> Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
>
> Devant chaque item Range, met le nom de la feuille auquel appartient
> l'objet "Range". videmment tu adaptes "NomFeuille" pour le nom
> vritable de l'onglet de la feuille dsigne.
>
> Worksheets("NomFeuille").Range("zonebdd").AdvancedFilter Action:=xlFilterCopy, _
> CriteriaRange:=Worksheets("NomFeuille").Range("A1:A2"), _
> CopyToRange:=Worksheets("NomFeuille").Range("A4:O4"), Unique:úlse
>
>
>
>
>
> "Franoise" a crit dans le message de groupe de
> discussion :
> Bonjour tous,
>
> je bloque et rebloque sur certainement pas grand chose, mais bon j'y vois
> plus d'o mon appel l'aide !
>
> j'ai un formulaire qui liste dans une ListView1 toutes les refs de mes
> articles en stock sur une feuille STOCK
>
> Jusque l tout va bien
> Quand je clique sur une Ref dans la ListBoxArticles, je veux lister dans le
> formulaire UsfDetailArticle, la liste des sorties pour cet article qui est
> contenue dans la feuille SORTIES de mon classeur
>
> je me suis appuye sur un modle de Flo Cabon qui fonctionne parfaitement,
> mais voil chaque fois, j'ai le mme code erreur "erreur d'excution 1004 -
> la mthode range de l'objet global a chou sur ma ligne de code :
> Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
> =================== > > voici le code du formulaire :
> = > > Private Sub ListBoxArticles_Click()
> 'ds que l'on clique sur l'article, on affiche dans le formulaire
> usfDetailArticle les entres et sorties de stock de l'article
> NumArticle = ListBoxArticles.Value
>
> With Sheets("SORTIES").Range("A:A")
> 'on commence par rechercher dans la feuille des sorties le N de ligne
> correspondant l'article slectionn
> Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
> 'la variable Lig, correspondant au numro de la ligne trouve, est dfinie
> comme une variable
> 'publique dans le module gnral dclarations. Ceci permet de passer sa
> valeur d'un userform un autre.
>
> If Not c Is Nothing Then Lig = c.Row
> End With
>
> Dim Critere As String
>
>
> If NumArticle <> -1 Then
> Critere = Critere & "(SORTIES!A2 = """ & NumArticle & """) * "
> End If
>
> ' ce stade le critre se termine par *... On ajoute donc un 1. Un critre
> renvoie normalement
> 'vrai ou faux. En le multipliant par 1 il renvoie 1 ou 0 ce qui est
> inter^rt de la mme faon par excel.
> Critere = "=" & Critere & "1"
> Sheets("FILTRE SORTIES").Range("A2").Value = Critere
>
>
> 'on utilise ensuite les critres de choix dans un filtre labor sur une
> feuille masque
> Sheets("FILTRE SORTIES").Activate
> Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
> 'Si aucune sortie ne correspond l'article slectionn
> If Range("FILTRE SORTIES!A5").Value = "" Then
> MsgBox ("Aucune sortie pour ce produit")
> 'S'il y a plus d'une sortie rpondant au critre autrement dit si B6 non vide
> 'on raffiche les sorties dans une zone de liste
> 'pour cela on nomme "Fiches Filtres" la plage contenant les sorties de
> l'article slectionn.
>
>
> ElseIf Range("FILTRE SORTIES!A6").Value <> "" Then
> ActiveWorkbook.Names.Add Name:="FichesFiltres", RefersToR1C1:= _
> "=OFFSET(FILTRE SORTIES!R5C1,,,COUNTA(FILTRE SORTIES!C1)-1)"
>
> 'sinon on rcupre son numro de ligne et on affiche la fiche article dans
> le userform UsfDetailArticle
> Else
> NumArticle = Range("A5").Value
> With Sheets("SORTIES").Range("A:A")
> Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
> If Not c Is Nothing Then Lig = c.Row
> End With
> UsfDetailArticle.Show
>
> End If
>
> End Sub
> ================= > > Quelqu'un a t il une ide de ce qui coince ?
> d'avance merci tous
>
>
| Worksheets("FILTRE SORTIES").Range("zonebdd")
Dans ladite feuille, Il n'y a pas de plage "zonebdd" dans la feuille
voir dans le classeur. Dans un tel cas, il est difficile que cela fonctionne !
(le classeur a t ouvert pas excel 2007)
En passant, un filtre labor requiert obligatoirement des tiquettes de colonnes.
"Franoise" a crit dans le message de groupe de
discussion :
Merci tous les deux pour votre aide, j'ai test le code de MichDenis, mais
toujours la mme erreur, aussi sur le conseil de Daniel je vous joins le
fichier pour voir ce qui cloche, j'avoue que je n'y vois plus rien !
http://www.cijoint.fr/cjlink.php?file=cj200903/cijCMrLV3f.xls
d'avance merci
"MichDenis" a crit :
> Dans cette ligne de code :
> Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
>
> Devant chaque item Range, met le nom de la feuille auquel appartient
> l'objet "Range". videmment tu adaptes "NomFeuille" pour le nom
> vritable de l'onglet de la feuille dsigne.
>
> Worksheets("NomFeuille").Range("zonebdd").AdvancedFilter Action:=xlFilterCopy, _
> CriteriaRange:=Worksheets("NomFeuille").Range("A1:A2"), _
> CopyToRange:=Worksheets("NomFeuille").Range("A4:O4"), Unique:úlse
>
>
>
>
>
> "Franoise" a crit dans le message de groupe de
> discussion :
> Bonjour tous,
>
> je bloque et rebloque sur certainement pas grand chose, mais bon j'y vois
> plus d'o mon appel l'aide !
>
> j'ai un formulaire qui liste dans une ListView1 toutes les refs de mes
> articles en stock sur une feuille STOCK
>
> Jusque l tout va bien
> Quand je clique sur une Ref dans la ListBoxArticles, je veux lister dans le
> formulaire UsfDetailArticle, la liste des sorties pour cet article qui est
> contenue dans la feuille SORTIES de mon classeur
>
> je me suis appuye sur un modle de Flo Cabon qui fonctionne parfaitement,
> mais voil chaque fois, j'ai le mme code erreur "erreur d'excution 1004 -
> la mthode range de l'objet global a chou sur ma ligne de code :
> Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
> =================== > > voici le code du formulaire :
> = > > Private Sub ListBoxArticles_Click()
> 'ds que l'on clique sur l'article, on affiche dans le formulaire
> usfDetailArticle les entres et sorties de stock de l'article
> NumArticle = ListBoxArticles.Value
>
> With Sheets("SORTIES").Range("A:A")
> 'on commence par rechercher dans la feuille des sorties le N de ligne
> correspondant l'article slectionn
> Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
> 'la variable Lig, correspondant au numro de la ligne trouve, est dfinie
> comme une variable
> 'publique dans le module gnral dclarations. Ceci permet de passer sa
> valeur d'un userform un autre.
>
> If Not c Is Nothing Then Lig = c.Row
> End With
>
> Dim Critere As String
>
>
> If NumArticle <> -1 Then
> Critere = Critere & "(SORTIES!A2 = """ & NumArticle & """) * "
> End If
>
> ' ce stade le critre se termine par *... On ajoute donc un 1. Un critre
> renvoie normalement
> 'vrai ou faux. En le multipliant par 1 il renvoie 1 ou 0 ce qui est
> inter^rt de la mme faon par excel.
> Critere = "=" & Critere & "1"
> Sheets("FILTRE SORTIES").Range("A2").Value = Critere
>
>
> 'on utilise ensuite les critres de choix dans un filtre labor sur une
> feuille masque
> Sheets("FILTRE SORTIES").Activate
> Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
> 'Si aucune sortie ne correspond l'article slectionn
> If Range("FILTRE SORTIES!A5").Value = "" Then
> MsgBox ("Aucune sortie pour ce produit")
> 'S'il y a plus d'une sortie rpondant au critre autrement dit si B6 non vide
> 'on raffiche les sorties dans une zone de liste
> 'pour cela on nomme "Fiches Filtres" la plage contenant les sorties de
> l'article slectionn.
>
>
> ElseIf Range("FILTRE SORTIES!A6").Value <> "" Then
> ActiveWorkbook.Names.Add Name:="FichesFiltres", RefersToR1C1:= _
> "=OFFSET(FILTRE SORTIES!R5C1,,,COUNTA(FILTRE SORTIES!C1)-1)"
>
> 'sinon on rcupre son numro de ligne et on affiche la fiche article dans
> le userform UsfDetailArticle
> Else
> NumArticle = Range("A5").Value
> With Sheets("SORTIES").Range("A:A")
> Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
> If Not c Is Nothing Then Lig = c.Row
> End With
> UsfDetailArticle.Show
>
> End If
>
> End Sub
> ================= > > Quelqu'un a t il une ide de ce qui coince ?
> d'avance merci tous
>
>
| Worksheets("FILTRE SORTIES").Range("zonebdd")
Dans ladite feuille, Il n'y a pas de plage "zonebdd" dans la feuille
voir dans le classeur. Dans un tel cas, il est difficile que cela fonctionne !
(le classeur a t ouvert pas excel 2007)
En passant, un filtre labor requiert obligatoirement des tiquettes de colonnes.
"Franoise" <Franoise@discussions.microsoft.com> a crit dans le message de groupe de
discussion : 8D98BBF6-8A8C-4EF6-BD0E-DC7B74FA373C@microsoft.com...
Merci tous les deux pour votre aide, j'ai test le code de MichDenis, mais
toujours la mme erreur, aussi sur le conseil de Daniel je vous joins le
fichier pour voir ce qui cloche, j'avoue que je n'y vois plus rien !
http://www.cijoint.fr/cjlink.php?file=cj200903/cijCMrLV3f.xls
d'avance merci
"MichDenis" a crit :
> Dans cette ligne de code :
> Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
>
> Devant chaque item Range, met le nom de la feuille auquel appartient
> l'objet "Range". videmment tu adaptes "NomFeuille" pour le nom
> vritable de l'onglet de la feuille dsigne.
>
> Worksheets("NomFeuille").Range("zonebdd").AdvancedFilter Action:=xlFilterCopy, _
> CriteriaRange:=Worksheets("NomFeuille").Range("A1:A2"), _
> CopyToRange:=Worksheets("NomFeuille").Range("A4:O4"), Unique:úlse
>
>
>
>
>
> "Franoise" <Franoise@discussions.microsoft.com> a crit dans le message de groupe de
> discussion : 9A62B004-A8A9-46F9-9055-B7C1F7370EE6@microsoft.com...
> Bonjour tous,
>
> je bloque et rebloque sur certainement pas grand chose, mais bon j'y vois
> plus d'o mon appel l'aide !
>
> j'ai un formulaire qui liste dans une ListView1 toutes les refs de mes
> articles en stock sur une feuille STOCK
>
> Jusque l tout va bien
> Quand je clique sur une Ref dans la ListBoxArticles, je veux lister dans le
> formulaire UsfDetailArticle, la liste des sorties pour cet article qui est
> contenue dans la feuille SORTIES de mon classeur
>
> je me suis appuye sur un modle de Flo Cabon qui fonctionne parfaitement,
> mais voil chaque fois, j'ai le mme code erreur "erreur d'excution 1004 -
> la mthode range de l'objet global a chou sur ma ligne de code :
> Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
> =================== > > voici le code du formulaire :
> = > > Private Sub ListBoxArticles_Click()
> 'ds que l'on clique sur l'article, on affiche dans le formulaire
> usfDetailArticle les entres et sorties de stock de l'article
> NumArticle = ListBoxArticles.Value
>
> With Sheets("SORTIES").Range("A:A")
> 'on commence par rechercher dans la feuille des sorties le N de ligne
> correspondant l'article slectionn
> Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
> 'la variable Lig, correspondant au numro de la ligne trouve, est dfinie
> comme une variable
> 'publique dans le module gnral dclarations. Ceci permet de passer sa
> valeur d'un userform un autre.
>
> If Not c Is Nothing Then Lig = c.Row
> End With
>
> Dim Critere As String
>
>
> If NumArticle <> -1 Then
> Critere = Critere & "(SORTIES!A2 = """ & NumArticle & """) * "
> End If
>
> ' ce stade le critre se termine par *... On ajoute donc un 1. Un critre
> renvoie normalement
> 'vrai ou faux. En le multipliant par 1 il renvoie 1 ou 0 ce qui est
> inter^rt de la mme faon par excel.
> Critere = "=" & Critere & "1"
> Sheets("FILTRE SORTIES").Range("A2").Value = Critere
>
>
> 'on utilise ensuite les critres de choix dans un filtre labor sur une
> feuille masque
> Sheets("FILTRE SORTIES").Activate
> Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
> 'Si aucune sortie ne correspond l'article slectionn
> If Range("FILTRE SORTIES!A5").Value = "" Then
> MsgBox ("Aucune sortie pour ce produit")
> 'S'il y a plus d'une sortie rpondant au critre autrement dit si B6 non vide
> 'on raffiche les sorties dans une zone de liste
> 'pour cela on nomme "Fiches Filtres" la plage contenant les sorties de
> l'article slectionn.
>
>
> ElseIf Range("FILTRE SORTIES!A6").Value <> "" Then
> ActiveWorkbook.Names.Add Name:="FichesFiltres", RefersToR1C1:= _
> "=OFFSET(FILTRE SORTIES!R5C1,,,COUNTA(FILTRE SORTIES!C1)-1)"
>
> 'sinon on rcupre son numro de ligne et on affiche la fiche article dans
> le userform UsfDetailArticle
> Else
> NumArticle = Range("A5").Value
> With Sheets("SORTIES").Range("A:A")
> Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
> If Not c Is Nothing Then Lig = c.Row
> End With
> UsfDetailArticle.Show
>
> End If
>
> End Sub
> ================= > > Quelqu'un a t il une ide de ce qui coince ?
> d'avance merci tous
>
>
| Worksheets("FILTRE SORTIES").Range("zonebdd")
Dans ladite feuille, Il n'y a pas de plage "zonebdd" dans la feuille
voir dans le classeur. Dans un tel cas, il est difficile que cela fonctionne !
(le classeur a t ouvert pas excel 2007)
En passant, un filtre labor requiert obligatoirement des tiquettes de colonnes.
"Franoise" a crit dans le message de groupe de
discussion :
Merci tous les deux pour votre aide, j'ai test le code de MichDenis, mais
toujours la mme erreur, aussi sur le conseil de Daniel je vous joins le
fichier pour voir ce qui cloche, j'avoue que je n'y vois plus rien !
http://www.cijoint.fr/cjlink.php?file=cj200903/cijCMrLV3f.xls
d'avance merci
"MichDenis" a crit :
> Dans cette ligne de code :
> Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
>
> Devant chaque item Range, met le nom de la feuille auquel appartient
> l'objet "Range". videmment tu adaptes "NomFeuille" pour le nom
> vritable de l'onglet de la feuille dsigne.
>
> Worksheets("NomFeuille").Range("zonebdd").AdvancedFilter Action:=xlFilterCopy, _
> CriteriaRange:=Worksheets("NomFeuille").Range("A1:A2"), _
> CopyToRange:=Worksheets("NomFeuille").Range("A4:O4"), Unique:úlse
>
>
>
>
>
> "Franoise" a crit dans le message de groupe de
> discussion :
> Bonjour tous,
>
> je bloque et rebloque sur certainement pas grand chose, mais bon j'y vois
> plus d'o mon appel l'aide !
>
> j'ai un formulaire qui liste dans une ListView1 toutes les refs de mes
> articles en stock sur une feuille STOCK
>
> Jusque l tout va bien
> Quand je clique sur une Ref dans la ListBoxArticles, je veux lister dans le
> formulaire UsfDetailArticle, la liste des sorties pour cet article qui est
> contenue dans la feuille SORTIES de mon classeur
>
> je me suis appuye sur un modle de Flo Cabon qui fonctionne parfaitement,
> mais voil chaque fois, j'ai le mme code erreur "erreur d'excution 1004 -
> la mthode range de l'objet global a chou sur ma ligne de code :
> Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
> =================== > > voici le code du formulaire :
> = > > Private Sub ListBoxArticles_Click()
> 'ds que l'on clique sur l'article, on affiche dans le formulaire
> usfDetailArticle les entres et sorties de stock de l'article
> NumArticle = ListBoxArticles.Value
>
> With Sheets("SORTIES").Range("A:A")
> 'on commence par rechercher dans la feuille des sorties le N de ligne
> correspondant l'article slectionn
> Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
> 'la variable Lig, correspondant au numro de la ligne trouve, est dfinie
> comme une variable
> 'publique dans le module gnral dclarations. Ceci permet de passer sa
> valeur d'un userform un autre.
>
> If Not c Is Nothing Then Lig = c.Row
> End With
>
> Dim Critere As String
>
>
> If NumArticle <> -1 Then
> Critere = Critere & "(SORTIES!A2 = """ & NumArticle & """) * "
> End If
>
> ' ce stade le critre se termine par *... On ajoute donc un 1. Un critre
> renvoie normalement
> 'vrai ou faux. En le multipliant par 1 il renvoie 1 ou 0 ce qui est
> inter^rt de la mme faon par excel.
> Critere = "=" & Critere & "1"
> Sheets("FILTRE SORTIES").Range("A2").Value = Critere
>
>
> 'on utilise ensuite les critres de choix dans un filtre labor sur une
> feuille masque
> Sheets("FILTRE SORTIES").Activate
> Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
> 'Si aucune sortie ne correspond l'article slectionn
> If Range("FILTRE SORTIES!A5").Value = "" Then
> MsgBox ("Aucune sortie pour ce produit")
> 'S'il y a plus d'une sortie rpondant au critre autrement dit si B6 non vide
> 'on raffiche les sorties dans une zone de liste
> 'pour cela on nomme "Fiches Filtres" la plage contenant les sorties de
> l'article slectionn.
>
>
> ElseIf Range("FILTRE SORTIES!A6").Value <> "" Then
> ActiveWorkbook.Names.Add Name:="FichesFiltres", RefersToR1C1:= _
> "=OFFSET(FILTRE SORTIES!R5C1,,,COUNTA(FILTRE SORTIES!C1)-1)"
>
> 'sinon on rcupre son numro de ligne et on affiche la fiche article dans
> le userform UsfDetailArticle
> Else
> NumArticle = Range("A5").Value
> With Sheets("SORTIES").Range("A:A")
> Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
> If Not c Is Nothing Then Lig = c.Row
> End With
> UsfDetailArticle.Show
>
> End If
>
> End Sub
> ================= > > Quelqu'un a t il une ide de ce qui coince ?
> d'avance merci tous
>
>
| Worksheets("FILTRE SORTIES").Range("zonebdd")
Dans ladite feuille, Il n'y a pas de plage "zonebdd" dans la feuille
voir dans le classeur. Dans un tel cas, il est difficile que cela fonctionne !
(le classeur a t ouvert pas excel 2007)
En passant, un filtre labor requiert obligatoirement des tiquettes de colonnes.
"Franoise" a crit dans le message de groupe de
discussion :
Merci tous les deux pour votre aide, j'ai test le code de MichDenis, mais
toujours la mme erreur, aussi sur le conseil de Daniel je vous joins le
fichier pour voir ce qui cloche, j'avoue que je n'y vois plus rien !
http://www.cijoint.fr/cjlink.php?file=cj200903/cijCMrLV3f.xls
d'avance merci
"MichDenis" a crit :
> Dans cette ligne de code :
> Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
>
> Devant chaque item Range, met le nom de la feuille auquel appartient
> l'objet "Range". videmment tu adaptes "NomFeuille" pour le nom
> vritable de l'onglet de la feuille dsigne.
>
> Worksheets("NomFeuille").Range("zonebdd").AdvancedFilter Action:=xlFilterCopy, _
> CriteriaRange:=Worksheets("NomFeuille").Range("A1:A2"), _
> CopyToRange:=Worksheets("NomFeuille").Range("A4:O4"), Unique:úlse
>
>
>
>
>
> "Franoise" a crit dans le message de groupe de
> discussion :
> Bonjour tous,
>
> je bloque et rebloque sur certainement pas grand chose, mais bon j'y vois
> plus d'o mon appel l'aide !
>
> j'ai un formulaire qui liste dans une ListView1 toutes les refs de mes
> articles en stock sur une feuille STOCK
>
> Jusque l tout va bien
> Quand je clique sur une Ref dans la ListBoxArticles, je veux lister dans le
> formulaire UsfDetailArticle, la liste des sorties pour cet article qui est
> contenue dans la feuille SORTIES de mon classeur
>
> je me suis appuye sur un modle de Flo Cabon qui fonctionne parfaitement,
> mais voil chaque fois, j'ai le mme code erreur "erreur d'excution 1004 -
> la mthode range de l'objet global a chou sur ma ligne de code :
> Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
> =================== > > voici le code du formulaire :
> = > > Private Sub ListBoxArticles_Click()
> 'ds que l'on clique sur l'article, on affiche dans le formulaire
> usfDetailArticle les entres et sorties de stock de l'article
> NumArticle = ListBoxArticles.Value
>
> With Sheets("SORTIES").Range("A:A")
> 'on commence par rechercher dans la feuille des sorties le N de ligne
> correspondant l'article slectionn
> Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
> 'la variable Lig, correspondant au numro de la ligne trouve, est dfinie
> comme une variable
> 'publique dans le module gnral dclarations. Ceci permet de passer sa
> valeur d'un userform un autre.
>
> If Not c Is Nothing Then Lig = c.Row
> End With
>
> Dim Critere As String
>
>
> If NumArticle <> -1 Then
> Critere = Critere & "(SORTIES!A2 = """ & NumArticle & """) * "
> End If
>
> ' ce stade le critre se termine par *... On ajoute donc un 1. Un critre
> renvoie normalement
> 'vrai ou faux. En le multipliant par 1 il renvoie 1 ou 0 ce qui est
> inter^rt de la mme faon par excel.
> Critere = "=" & Critere & "1"
> Sheets("FILTRE SORTIES").Range("A2").Value = Critere
>
>
> 'on utilise ensuite les critres de choix dans un filtre labor sur une
> feuille masque
> Sheets("FILTRE SORTIES").Activate
> Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
> 'Si aucune sortie ne correspond l'article slectionn
> If Range("FILTRE SORTIES!A5").Value = "" Then
> MsgBox ("Aucune sortie pour ce produit")
> 'S'il y a plus d'une sortie rpondant au critre autrement dit si B6 non vide
> 'on raffiche les sorties dans une zone de liste
> 'pour cela on nomme "Fiches Filtres" la plage contenant les sorties de
> l'article slectionn.
>
>
> ElseIf Range("FILTRE SORTIES!A6").Value <> "" Then
> ActiveWorkbook.Names.Add Name:="FichesFiltres", RefersToR1C1:= _
> "=OFFSET(FILTRE SORTIES!R5C1,,,COUNTA(FILTRE SORTIES!C1)-1)"
>
> 'sinon on rcupre son numro de ligne et on affiche la fiche article dans
> le userform UsfDetailArticle
> Else
> NumArticle = Range("A5").Value
> With Sheets("SORTIES").Range("A:A")
> Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
> If Not c Is Nothing Then Lig = c.Row
> End With
> UsfDetailArticle.Show
>
> End If
>
> End Sub
> ================= > > Quelqu'un a t il une ide de ce qui coince ?
> d'avance merci tous
>
>
| Worksheets("FILTRE SORTIES").Range("zonebdd")
Dans ladite feuille, Il n'y a pas de plage "zonebdd" dans la feuille
voir dans le classeur. Dans un tel cas, il est difficile que cela fonctionne !
(le classeur a t ouvert pas excel 2007)
En passant, un filtre labor requiert obligatoirement des tiquettes de colonnes.
"Franoise" <Franoise@discussions.microsoft.com> a crit dans le message de groupe de
discussion : 8D98BBF6-8A8C-4EF6-BD0E-DC7B74FA373C@microsoft.com...
Merci tous les deux pour votre aide, j'ai test le code de MichDenis, mais
toujours la mme erreur, aussi sur le conseil de Daniel je vous joins le
fichier pour voir ce qui cloche, j'avoue que je n'y vois plus rien !
http://www.cijoint.fr/cjlink.php?file=cj200903/cijCMrLV3f.xls
d'avance merci
"MichDenis" a crit :
> Dans cette ligne de code :
> Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
>
> Devant chaque item Range, met le nom de la feuille auquel appartient
> l'objet "Range". videmment tu adaptes "NomFeuille" pour le nom
> vritable de l'onglet de la feuille dsigne.
>
> Worksheets("NomFeuille").Range("zonebdd").AdvancedFilter Action:=xlFilterCopy, _
> CriteriaRange:=Worksheets("NomFeuille").Range("A1:A2"), _
> CopyToRange:=Worksheets("NomFeuille").Range("A4:O4"), Unique:úlse
>
>
>
>
>
> "Franoise" <Franoise@discussions.microsoft.com> a crit dans le message de groupe de
> discussion : 9A62B004-A8A9-46F9-9055-B7C1F7370EE6@microsoft.com...
> Bonjour tous,
>
> je bloque et rebloque sur certainement pas grand chose, mais bon j'y vois
> plus d'o mon appel l'aide !
>
> j'ai un formulaire qui liste dans une ListView1 toutes les refs de mes
> articles en stock sur une feuille STOCK
>
> Jusque l tout va bien
> Quand je clique sur une Ref dans la ListBoxArticles, je veux lister dans le
> formulaire UsfDetailArticle, la liste des sorties pour cet article qui est
> contenue dans la feuille SORTIES de mon classeur
>
> je me suis appuye sur un modle de Flo Cabon qui fonctionne parfaitement,
> mais voil chaque fois, j'ai le mme code erreur "erreur d'excution 1004 -
> la mthode range de l'objet global a chou sur ma ligne de code :
> Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
> =================== > > voici le code du formulaire :
> = > > Private Sub ListBoxArticles_Click()
> 'ds que l'on clique sur l'article, on affiche dans le formulaire
> usfDetailArticle les entres et sorties de stock de l'article
> NumArticle = ListBoxArticles.Value
>
> With Sheets("SORTIES").Range("A:A")
> 'on commence par rechercher dans la feuille des sorties le N de ligne
> correspondant l'article slectionn
> Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
> 'la variable Lig, correspondant au numro de la ligne trouve, est dfinie
> comme une variable
> 'publique dans le module gnral dclarations. Ceci permet de passer sa
> valeur d'un userform un autre.
>
> If Not c Is Nothing Then Lig = c.Row
> End With
>
> Dim Critere As String
>
>
> If NumArticle <> -1 Then
> Critere = Critere & "(SORTIES!A2 = """ & NumArticle & """) * "
> End If
>
> ' ce stade le critre se termine par *... On ajoute donc un 1. Un critre
> renvoie normalement
> 'vrai ou faux. En le multipliant par 1 il renvoie 1 ou 0 ce qui est
> inter^rt de la mme faon par excel.
> Critere = "=" & Critere & "1"
> Sheets("FILTRE SORTIES").Range("A2").Value = Critere
>
>
> 'on utilise ensuite les critres de choix dans un filtre labor sur une
> feuille masque
> Sheets("FILTRE SORTIES").Activate
> Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
> 'Si aucune sortie ne correspond l'article slectionn
> If Range("FILTRE SORTIES!A5").Value = "" Then
> MsgBox ("Aucune sortie pour ce produit")
> 'S'il y a plus d'une sortie rpondant au critre autrement dit si B6 non vide
> 'on raffiche les sorties dans une zone de liste
> 'pour cela on nomme "Fiches Filtres" la plage contenant les sorties de
> l'article slectionn.
>
>
> ElseIf Range("FILTRE SORTIES!A6").Value <> "" Then
> ActiveWorkbook.Names.Add Name:="FichesFiltres", RefersToR1C1:= _
> "=OFFSET(FILTRE SORTIES!R5C1,,,COUNTA(FILTRE SORTIES!C1)-1)"
>
> 'sinon on rcupre son numro de ligne et on affiche la fiche article dans
> le userform UsfDetailArticle
> Else
> NumArticle = Range("A5").Value
> With Sheets("SORTIES").Range("A:A")
> Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
> If Not c Is Nothing Then Lig = c.Row
> End With
> UsfDetailArticle.Show
>
> End If
>
> End Sub
> ================= > > Quelqu'un a t il une ide de ce qui coince ?
> d'avance merci tous
>
>
| Worksheets("FILTRE SORTIES").Range("zonebdd")
Dans ladite feuille, Il n'y a pas de plage "zonebdd" dans la feuille
voir dans le classeur. Dans un tel cas, il est difficile que cela fonctionne !
(le classeur a t ouvert pas excel 2007)
En passant, un filtre labor requiert obligatoirement des tiquettes de colonnes.
"Franoise" a crit dans le message de groupe de
discussion :
Merci tous les deux pour votre aide, j'ai test le code de MichDenis, mais
toujours la mme erreur, aussi sur le conseil de Daniel je vous joins le
fichier pour voir ce qui cloche, j'avoue que je n'y vois plus rien !
http://www.cijoint.fr/cjlink.php?file=cj200903/cijCMrLV3f.xls
d'avance merci
"MichDenis" a crit :
> Dans cette ligne de code :
> Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
>
> Devant chaque item Range, met le nom de la feuille auquel appartient
> l'objet "Range". videmment tu adaptes "NomFeuille" pour le nom
> vritable de l'onglet de la feuille dsigne.
>
> Worksheets("NomFeuille").Range("zonebdd").AdvancedFilter Action:=xlFilterCopy, _
> CriteriaRange:=Worksheets("NomFeuille").Range("A1:A2"), _
> CopyToRange:=Worksheets("NomFeuille").Range("A4:O4"), Unique:úlse
>
>
>
>
>
> "Franoise" a crit dans le message de groupe de
> discussion :
> Bonjour tous,
>
> je bloque et rebloque sur certainement pas grand chose, mais bon j'y vois
> plus d'o mon appel l'aide !
>
> j'ai un formulaire qui liste dans une ListView1 toutes les refs de mes
> articles en stock sur une feuille STOCK
>
> Jusque l tout va bien
> Quand je clique sur une Ref dans la ListBoxArticles, je veux lister dans le
> formulaire UsfDetailArticle, la liste des sorties pour cet article qui est
> contenue dans la feuille SORTIES de mon classeur
>
> je me suis appuye sur un modle de Flo Cabon qui fonctionne parfaitement,
> mais voil chaque fois, j'ai le mme code erreur "erreur d'excution 1004 -
> la mthode range de l'objet global a chou sur ma ligne de code :
> Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
> =================== > > voici le code du formulaire :
> = > > Private Sub ListBoxArticles_Click()
> 'ds que l'on clique sur l'article, on affiche dans le formulaire
> usfDetailArticle les entres et sorties de stock de l'article
> NumArticle = ListBoxArticles.Value
>
> With Sheets("SORTIES").Range("A:A")
> 'on commence par rechercher dans la feuille des sorties le N de ligne
> correspondant l'article slectionn
> Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
> 'la variable Lig, correspondant au numro de la ligne trouve, est dfinie
> comme une variable
> 'publique dans le module gnral dclarations. Ceci permet de passer sa
> valeur d'un userform un autre.
>
> If Not c Is Nothing Then Lig = c.Row
> End With
>
> Dim Critere As String
>
>
> If NumArticle <> -1 Then
> Critere = Critere & "(SORTIES!A2 = """ & NumArticle & """) * "
> End If
>
> ' ce stade le critre se termine par *... On ajoute donc un 1. Un critre
> renvoie normalement
> 'vrai ou faux. En le multipliant par 1 il renvoie 1 ou 0 ce qui est
> inter^rt de la mme faon par excel.
> Critere = "=" & Critere & "1"
> Sheets("FILTRE SORTIES").Range("A2").Value = Critere
>
>
> 'on utilise ensuite les critres de choix dans un filtre labor sur une
> feuille masque
> Sheets("FILTRE SORTIES").Activate
> Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
> 'Si aucune sortie ne correspond l'article slectionn
> If Range("FILTRE SORTIES!A5").Value = "" Then
> MsgBox ("Aucune sortie pour ce produit")
> 'S'il y a plus d'une sortie rpondant au critre autrement dit si B6 non vide
> 'on raffiche les sorties dans une zone de liste
> 'pour cela on nomme "Fiches Filtres" la plage contenant les sorties de
> l'article slectionn.
>
>
> ElseIf Range("FILTRE SORTIES!A6").Value <> "" Then
> ActiveWorkbook.Names.Add Name:="FichesFiltres", RefersToR1C1:= _
> "=OFFSET(FILTRE SORTIES!R5C1,,,COUNTA(FILTRE SORTIES!C1)-1)"
>
> 'sinon on rcupre son numro de ligne et on affiche la fiche article dans
> le userform UsfDetailArticle
> Else
> NumArticle = Range("A5").Value
> With Sheets("SORTIES").Range("A:A")
> Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
> If Not c Is Nothing Then Lig = c.Row
> End With
> UsfDetailArticle.Show
>
> End If
>
> End Sub
> ================= > > Quelqu'un a t il une ide de ce qui coince ?
> d'avance merci tous
>
>
comme je suppose que tu ferais plusieurs filtres,
il serait sage d'effacer la plage rsultat avant de
lancer le filtre suivant. Pour ce faire, immdiatement
aprs avoir dfini ton critre, tu insres cette ligne de
code en adaptant P1 pour la cellule de ton application...
Sh.Range("P1").CurrentRegion.Clear
"MichDenis" a crit dans le message de groupe de discussion :
Un exemple d'un code d'un filtre labor
en supposant que la plage source des donnes. la zone
de critre et la plage de rsultat se situe sur la mme feuille.
Tu dois adapter le nom de la feuille et l'adresse de la plage
o se situe les donnes dans la feuille de ton programme.
'------------------------------------
Sub test()
Dim Sh As Worksheet
Set Sh = Worksheets("Feuil1")
On Error Resume Next
With Sh
'dfinir la zone de critre
'En supposant que tu veuilles choisir l'tiquette
'de la colonne A1 -> champ o tu veux exploiter le filtre
.Range("K1") = .Range("A1")
.Range("K2") = 5 'la valeur du critre du filtre
'Dfinir la plage de cellules pour le filtre...
With .Range("A1:E" & .Range("A65536").End(xlUp).Row)
'Application du filtre
.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Sh.Range("K1:K2"), _
CopyToRange:=Sh.Range("P1"), Unique:úlse
'Copie vers la cellule o dbutera la plage rsultat
End With
.ShowAllData
End With
End Sub
'------------------------------------
"Franoise" a crit dans le message de groupe de
discussion :
bon c'est vrai j'ai du mal !
peux-tu me remettre le fichier modifie avec les modifs dont tu parles sur
ci-joint cela me permettrait de mieux comprendre et de gagner du temps sur
mon exemple concret
je fais des tests mais n'arrive pas faire les extractions correctement
je travaille avec EXCEL 2003
d'avance merci pour ton aide
"MichDenis" a crit :
> | Worksheets("FILTRE SORTIES").Range("zonebdd")
>
> Dans ladite feuille, Il n'y a pas de plage "zonebdd" dans la feuille
> voir dans le classeur. Dans un tel cas, il est difficile que cela fonctionne !
> (le classeur a t ouvert pas excel 2007)
>
> En passant, un filtre labor requiert obligatoirement des tiquettes de colonnes.
>
>
>
>
>
> "Franoise" a crit dans le message de groupe de
> discussion :
> Merci tous les deux pour votre aide, j'ai test le code de MichDenis, mais
> toujours la mme erreur, aussi sur le conseil de Daniel je vous joins le
> fichier pour voir ce qui cloche, j'avoue que je n'y vois plus rien !
>
> http://www.cijoint.fr/cjlink.php?file=cj200903/cijCMrLV3f.xls
>
> d'avance merci
>
> "MichDenis" a crit :
>
> > Dans cette ligne de code :
> > Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> > CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
> >
> > Devant chaque item Range, met le nom de la feuille auquel appartient
> > l'objet "Range". videmment tu adaptes "NomFeuille" pour le nom
> > vritable de l'onglet de la feuille dsigne.
> >
> > Worksheets("NomFeuille").Range("zonebdd").AdvancedFilter Action:=xlFilterCopy, _
> > CriteriaRange:=Worksheets("NomFeuille").Range("A1:A2"), _
> > CopyToRange:=Worksheets("NomFeuille").Range("A4:O4"), Unique:úlse
> >
> >
> >
> >
> >
> > "Franoise" a crit dans le message de groupe de
> > discussion :
> > Bonjour tous,
> >
> > je bloque et rebloque sur certainement pas grand chose, mais bon j'y vois
> > plus d'o mon appel l'aide !
> >
> > j'ai un formulaire qui liste dans une ListView1 toutes les refs de mes
> > articles en stock sur une feuille STOCK
> >
> > Jusque l tout va bien
> > Quand je clique sur une Ref dans la ListBoxArticles, je veux lister dans le
> > formulaire UsfDetailArticle, la liste des sorties pour cet article qui est
> > contenue dans la feuille SORTIES de mon classeur
> >
> > je me suis appuye sur un modle de Flo Cabon qui fonctionne parfaitement,
> > mais voil chaque fois, j'ai le mme code erreur "erreur d'excution 1004 -
> > la mthode range de l'objet global a chou sur ma ligne de code :
> > Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> > CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
> > =================== > > > voici le code du formulaire :
> > = > > > Private Sub ListBoxArticles_Click()
> > 'ds que l'on clique sur l'article, on affiche dans le formulaire
> > usfDetailArticle les entres et sorties de stock de l'article
> > NumArticle = ListBoxArticles.Value
> >
> > With Sheets("SORTIES").Range("A:A")
> > 'on commence par rechercher dans la feuille des sorties le N de ligne
> > correspondant l'article slectionn
> > Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
> > 'la variable Lig, correspondant au numro de la ligne trouve, est dfinie
> > comme une variable
> > 'publique dans le module gnral dclarations. Ceci permet de passer sa
> > valeur d'un userform un autre.
> >
> > If Not c Is Nothing Then Lig = c.Row
> > End With
> >
> > Dim Critere As String
> >
> >
> > If NumArticle <> -1 Then
> > Critere = Critere & "(SORTIES!A2 = """ & NumArticle & """) * "
> > End If
> >
> > ' ce stade le critre se termine par *... On ajoute donc un 1. Un critre
> > renvoie normalement
> > 'vrai ou faux. En le multipliant par 1 il renvoie 1 ou 0 ce qui est
> > inter^rt de la mme faon par excel.
> > Critere = "=" & Critere & "1"
> > Sheets("FILTRE SORTIES").Range("A2").Value = Critere
> >
> >
> > 'on utilise ensuite les critres de choix dans un filtre labor sur une
> > feuille masque
> > Sheets("FILTRE SORTIES").Activate
> > Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> > CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
> > 'Si aucune sortie ne correspond l'article slectionn
> > If Range("FILTRE SORTIES!A5").Value = "" Then
> > MsgBox ("Aucune sortie pour ce produit")
> > 'S'il y a plus d'une sortie rpondant au critre autrement dit si B6 non vide
> > 'on raffiche les sorties dans une zone de liste
> > 'pour cela on nomme "Fiches Filtres" la plage contenant les sorties de
> > l'article slectionn.
> >
> >
> > ElseIf Range("FILTRE SORTIES!A6").Value <> "" Then
> > ActiveWorkbook.Names.Add Name:="FichesFiltres", RefersToR1C1:= _
> > "=OFFSET(FILTRE SORTIES!R5C1,,,COUNTA(FILTRE SORTIES!C1)-1)"
> >
> > 'sinon on rcupre son numro de ligne et on affiche la fiche article dans
> > le userform UsfDetailArticle
> > Else
> > NumArticle = Range("A5").Value
> > With Sheets("SORTIES").Range("A:A")
> > Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
> > If Not c Is Nothing Then Lig = c.Row
> > End With
> > UsfDetailArticle.Show
> >
> > End If
> >
> > End Sub
> > ================= > > > Quelqu'un a t il une ide de ce qui coince ?
> > d'avance merci tous
> >
> >
>
comme je suppose que tu ferais plusieurs filtres,
il serait sage d'effacer la plage rsultat avant de
lancer le filtre suivant. Pour ce faire, immdiatement
aprs avoir dfini ton critre, tu insres cette ligne de
code en adaptant P1 pour la cellule de ton application...
Sh.Range("P1").CurrentRegion.Clear
"MichDenis" <michdenis@hotmail.com> a crit dans le message de groupe de discussion :
48A25334-9D13-478F-A066-A03220B89B0F@microsoft.com...
Un exemple d'un code d'un filtre labor
en supposant que la plage source des donnes. la zone
de critre et la plage de rsultat se situe sur la mme feuille.
Tu dois adapter le nom de la feuille et l'adresse de la plage
o se situe les donnes dans la feuille de ton programme.
'------------------------------------
Sub test()
Dim Sh As Worksheet
Set Sh = Worksheets("Feuil1")
On Error Resume Next
With Sh
'dfinir la zone de critre
'En supposant que tu veuilles choisir l'tiquette
'de la colonne A1 -> champ o tu veux exploiter le filtre
.Range("K1") = .Range("A1")
.Range("K2") = 5 'la valeur du critre du filtre
'Dfinir la plage de cellules pour le filtre...
With .Range("A1:E" & .Range("A65536").End(xlUp).Row)
'Application du filtre
.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Sh.Range("K1:K2"), _
CopyToRange:=Sh.Range("P1"), Unique:úlse
'Copie vers la cellule o dbutera la plage rsultat
End With
.ShowAllData
End With
End Sub
'------------------------------------
"Franoise" <Franoise@discussions.microsoft.com> a crit dans le message de groupe de
discussion : D7759165-5DA2-437F-9A14-3CB2F320D1E2@microsoft.com...
bon c'est vrai j'ai du mal !
peux-tu me remettre le fichier modifie avec les modifs dont tu parles sur
ci-joint cela me permettrait de mieux comprendre et de gagner du temps sur
mon exemple concret
je fais des tests mais n'arrive pas faire les extractions correctement
je travaille avec EXCEL 2003
d'avance merci pour ton aide
"MichDenis" a crit :
> | Worksheets("FILTRE SORTIES").Range("zonebdd")
>
> Dans ladite feuille, Il n'y a pas de plage "zonebdd" dans la feuille
> voir dans le classeur. Dans un tel cas, il est difficile que cela fonctionne !
> (le classeur a t ouvert pas excel 2007)
>
> En passant, un filtre labor requiert obligatoirement des tiquettes de colonnes.
>
>
>
>
>
> "Franoise" <Franoise@discussions.microsoft.com> a crit dans le message de groupe de
> discussion : 8D98BBF6-8A8C-4EF6-BD0E-DC7B74FA373C@microsoft.com...
> Merci tous les deux pour votre aide, j'ai test le code de MichDenis, mais
> toujours la mme erreur, aussi sur le conseil de Daniel je vous joins le
> fichier pour voir ce qui cloche, j'avoue que je n'y vois plus rien !
>
> http://www.cijoint.fr/cjlink.php?file=cj200903/cijCMrLV3f.xls
>
> d'avance merci
>
> "MichDenis" a crit :
>
> > Dans cette ligne de code :
> > Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> > CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
> >
> > Devant chaque item Range, met le nom de la feuille auquel appartient
> > l'objet "Range". videmment tu adaptes "NomFeuille" pour le nom
> > vritable de l'onglet de la feuille dsigne.
> >
> > Worksheets("NomFeuille").Range("zonebdd").AdvancedFilter Action:=xlFilterCopy, _
> > CriteriaRange:=Worksheets("NomFeuille").Range("A1:A2"), _
> > CopyToRange:=Worksheets("NomFeuille").Range("A4:O4"), Unique:úlse
> >
> >
> >
> >
> >
> > "Franoise" <Franoise@discussions.microsoft.com> a crit dans le message de groupe de
> > discussion : 9A62B004-A8A9-46F9-9055-B7C1F7370EE6@microsoft.com...
> > Bonjour tous,
> >
> > je bloque et rebloque sur certainement pas grand chose, mais bon j'y vois
> > plus d'o mon appel l'aide !
> >
> > j'ai un formulaire qui liste dans une ListView1 toutes les refs de mes
> > articles en stock sur une feuille STOCK
> >
> > Jusque l tout va bien
> > Quand je clique sur une Ref dans la ListBoxArticles, je veux lister dans le
> > formulaire UsfDetailArticle, la liste des sorties pour cet article qui est
> > contenue dans la feuille SORTIES de mon classeur
> >
> > je me suis appuye sur un modle de Flo Cabon qui fonctionne parfaitement,
> > mais voil chaque fois, j'ai le mme code erreur "erreur d'excution 1004 -
> > la mthode range de l'objet global a chou sur ma ligne de code :
> > Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> > CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
> > =================== > > > voici le code du formulaire :
> > = > > > Private Sub ListBoxArticles_Click()
> > 'ds que l'on clique sur l'article, on affiche dans le formulaire
> > usfDetailArticle les entres et sorties de stock de l'article
> > NumArticle = ListBoxArticles.Value
> >
> > With Sheets("SORTIES").Range("A:A")
> > 'on commence par rechercher dans la feuille des sorties le N de ligne
> > correspondant l'article slectionn
> > Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
> > 'la variable Lig, correspondant au numro de la ligne trouve, est dfinie
> > comme une variable
> > 'publique dans le module gnral dclarations. Ceci permet de passer sa
> > valeur d'un userform un autre.
> >
> > If Not c Is Nothing Then Lig = c.Row
> > End With
> >
> > Dim Critere As String
> >
> >
> > If NumArticle <> -1 Then
> > Critere = Critere & "(SORTIES!A2 = """ & NumArticle & """) * "
> > End If
> >
> > ' ce stade le critre se termine par *... On ajoute donc un 1. Un critre
> > renvoie normalement
> > 'vrai ou faux. En le multipliant par 1 il renvoie 1 ou 0 ce qui est
> > inter^rt de la mme faon par excel.
> > Critere = "=" & Critere & "1"
> > Sheets("FILTRE SORTIES").Range("A2").Value = Critere
> >
> >
> > 'on utilise ensuite les critres de choix dans un filtre labor sur une
> > feuille masque
> > Sheets("FILTRE SORTIES").Activate
> > Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> > CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
> > 'Si aucune sortie ne correspond l'article slectionn
> > If Range("FILTRE SORTIES!A5").Value = "" Then
> > MsgBox ("Aucune sortie pour ce produit")
> > 'S'il y a plus d'une sortie rpondant au critre autrement dit si B6 non vide
> > 'on raffiche les sorties dans une zone de liste
> > 'pour cela on nomme "Fiches Filtres" la plage contenant les sorties de
> > l'article slectionn.
> >
> >
> > ElseIf Range("FILTRE SORTIES!A6").Value <> "" Then
> > ActiveWorkbook.Names.Add Name:="FichesFiltres", RefersToR1C1:= _
> > "=OFFSET(FILTRE SORTIES!R5C1,,,COUNTA(FILTRE SORTIES!C1)-1)"
> >
> > 'sinon on rcupre son numro de ligne et on affiche la fiche article dans
> > le userform UsfDetailArticle
> > Else
> > NumArticle = Range("A5").Value
> > With Sheets("SORTIES").Range("A:A")
> > Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
> > If Not c Is Nothing Then Lig = c.Row
> > End With
> > UsfDetailArticle.Show
> >
> > End If
> >
> > End Sub
> > ================= > > > Quelqu'un a t il une ide de ce qui coince ?
> > d'avance merci tous
> >
> >
>
comme je suppose que tu ferais plusieurs filtres,
il serait sage d'effacer la plage rsultat avant de
lancer le filtre suivant. Pour ce faire, immdiatement
aprs avoir dfini ton critre, tu insres cette ligne de
code en adaptant P1 pour la cellule de ton application...
Sh.Range("P1").CurrentRegion.Clear
"MichDenis" a crit dans le message de groupe de discussion :
Un exemple d'un code d'un filtre labor
en supposant que la plage source des donnes. la zone
de critre et la plage de rsultat se situe sur la mme feuille.
Tu dois adapter le nom de la feuille et l'adresse de la plage
o se situe les donnes dans la feuille de ton programme.
'------------------------------------
Sub test()
Dim Sh As Worksheet
Set Sh = Worksheets("Feuil1")
On Error Resume Next
With Sh
'dfinir la zone de critre
'En supposant que tu veuilles choisir l'tiquette
'de la colonne A1 -> champ o tu veux exploiter le filtre
.Range("K1") = .Range("A1")
.Range("K2") = 5 'la valeur du critre du filtre
'Dfinir la plage de cellules pour le filtre...
With .Range("A1:E" & .Range("A65536").End(xlUp).Row)
'Application du filtre
.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Sh.Range("K1:K2"), _
CopyToRange:=Sh.Range("P1"), Unique:úlse
'Copie vers la cellule o dbutera la plage rsultat
End With
.ShowAllData
End With
End Sub
'------------------------------------
"Franoise" a crit dans le message de groupe de
discussion :
bon c'est vrai j'ai du mal !
peux-tu me remettre le fichier modifie avec les modifs dont tu parles sur
ci-joint cela me permettrait de mieux comprendre et de gagner du temps sur
mon exemple concret
je fais des tests mais n'arrive pas faire les extractions correctement
je travaille avec EXCEL 2003
d'avance merci pour ton aide
"MichDenis" a crit :
> | Worksheets("FILTRE SORTIES").Range("zonebdd")
>
> Dans ladite feuille, Il n'y a pas de plage "zonebdd" dans la feuille
> voir dans le classeur. Dans un tel cas, il est difficile que cela fonctionne !
> (le classeur a t ouvert pas excel 2007)
>
> En passant, un filtre labor requiert obligatoirement des tiquettes de colonnes.
>
>
>
>
>
> "Franoise" a crit dans le message de groupe de
> discussion :
> Merci tous les deux pour votre aide, j'ai test le code de MichDenis, mais
> toujours la mme erreur, aussi sur le conseil de Daniel je vous joins le
> fichier pour voir ce qui cloche, j'avoue que je n'y vois plus rien !
>
> http://www.cijoint.fr/cjlink.php?file=cj200903/cijCMrLV3f.xls
>
> d'avance merci
>
> "MichDenis" a crit :
>
> > Dans cette ligne de code :
> > Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> > CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
> >
> > Devant chaque item Range, met le nom de la feuille auquel appartient
> > l'objet "Range". videmment tu adaptes "NomFeuille" pour le nom
> > vritable de l'onglet de la feuille dsigne.
> >
> > Worksheets("NomFeuille").Range("zonebdd").AdvancedFilter Action:=xlFilterCopy, _
> > CriteriaRange:=Worksheets("NomFeuille").Range("A1:A2"), _
> > CopyToRange:=Worksheets("NomFeuille").Range("A4:O4"), Unique:úlse
> >
> >
> >
> >
> >
> > "Franoise" a crit dans le message de groupe de
> > discussion :
> > Bonjour tous,
> >
> > je bloque et rebloque sur certainement pas grand chose, mais bon j'y vois
> > plus d'o mon appel l'aide !
> >
> > j'ai un formulaire qui liste dans une ListView1 toutes les refs de mes
> > articles en stock sur une feuille STOCK
> >
> > Jusque l tout va bien
> > Quand je clique sur une Ref dans la ListBoxArticles, je veux lister dans le
> > formulaire UsfDetailArticle, la liste des sorties pour cet article qui est
> > contenue dans la feuille SORTIES de mon classeur
> >
> > je me suis appuye sur un modle de Flo Cabon qui fonctionne parfaitement,
> > mais voil chaque fois, j'ai le mme code erreur "erreur d'excution 1004 -
> > la mthode range de l'objet global a chou sur ma ligne de code :
> > Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> > CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
> > =================== > > > voici le code du formulaire :
> > = > > > Private Sub ListBoxArticles_Click()
> > 'ds que l'on clique sur l'article, on affiche dans le formulaire
> > usfDetailArticle les entres et sorties de stock de l'article
> > NumArticle = ListBoxArticles.Value
> >
> > With Sheets("SORTIES").Range("A:A")
> > 'on commence par rechercher dans la feuille des sorties le N de ligne
> > correspondant l'article slectionn
> > Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
> > 'la variable Lig, correspondant au numro de la ligne trouve, est dfinie
> > comme une variable
> > 'publique dans le module gnral dclarations. Ceci permet de passer sa
> > valeur d'un userform un autre.
> >
> > If Not c Is Nothing Then Lig = c.Row
> > End With
> >
> > Dim Critere As String
> >
> >
> > If NumArticle <> -1 Then
> > Critere = Critere & "(SORTIES!A2 = """ & NumArticle & """) * "
> > End If
> >
> > ' ce stade le critre se termine par *... On ajoute donc un 1. Un critre
> > renvoie normalement
> > 'vrai ou faux. En le multipliant par 1 il renvoie 1 ou 0 ce qui est
> > inter^rt de la mme faon par excel.
> > Critere = "=" & Critere & "1"
> > Sheets("FILTRE SORTIES").Range("A2").Value = Critere
> >
> >
> > 'on utilise ensuite les critres de choix dans un filtre labor sur une
> > feuille masque
> > Sheets("FILTRE SORTIES").Activate
> > Range("zonebdd").AdvancedFilter Action:=xlFilterCopy,
> > CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:O4"), Unique:úlse
> > 'Si aucune sortie ne correspond l'article slectionn
> > If Range("FILTRE SORTIES!A5").Value = "" Then
> > MsgBox ("Aucune sortie pour ce produit")
> > 'S'il y a plus d'une sortie rpondant au critre autrement dit si B6 non vide
> > 'on raffiche les sorties dans une zone de liste
> > 'pour cela on nomme "Fiches Filtres" la plage contenant les sorties de
> > l'article slectionn.
> >
> >
> > ElseIf Range("FILTRE SORTIES!A6").Value <> "" Then
> > ActiveWorkbook.Names.Add Name:="FichesFiltres", RefersToR1C1:= _
> > "=OFFSET(FILTRE SORTIES!R5C1,,,COUNTA(FILTRE SORTIES!C1)-1)"
> >
> > 'sinon on rcupre son numro de ligne et on affiche la fiche article dans
> > le userform UsfDetailArticle
> > Else
> > NumArticle = Range("A5").Value
> > With Sheets("SORTIES").Range("A:A")
> > Set c = .Find(NumArticle, LookIn:=xlValues, LookAt:=xlWhole)
> > If Not c Is Nothing Then Lig = c.Row
> > End With
> > UsfDetailArticle.Show
> >
> > End If
> >
> > End Sub
> > ================= > > > Quelqu'un a t il une ide de ce qui coince ?
> > d'avance merci tous
> >
> >
>