Bonjour à tous,
J'essaye de me débrouiller avec mes petites connaissances en excel ..
Je vous explique mon soucis
J'ai un fichier excel auquel j'ai une base de donnée.
Je viens de créer un autre fichier pour sélectionner les données selon 3 groupes différents.
J'ai trouvé une formule qui me permet de récupérer des données en fonctions d'un groupe.
Le souci c'est que j'aimerais que cela puisse être variable selon les 2 autres groupes. Ce qui n'est pas possible avec ma formule statique.
J'ai essayé VBA avec l'enregistreur .. Le souci c'est que quand je remplace 2 Lettres dans ma formule cela s'écrit de la même façon dans VBA, on dirait qu'il n'est pas précis dans ce que je lui demande en passant par l'enregistrement.
Ma formule de base qui fonctionne pour un groupe est :
=SI($H$8='[Liste des docs RV 02.xlsx]Sheet1 '!$E$1;SI('[Liste des docs RV 02.xlsx]Sheet1 '!$E2<>"";'[Liste des docs RV 02.xlsx]Sheet1 '!$B2;"-");"")
Elle est donc valable uniquement quand je selectionne "ADMIN" en H8
J'aimerais qu'elle soit variable en changeant uniquement les lettres en gras par les groupe suivant
PROD = F
MAINTENANCE = G
ADMIN = E
-----------------------------------------------------------------------------------------------------------
Voici le VBA associé
Sub Macro1()
'
' Macro1 Macro
'
If ("H8" = PROD) Then
Range("H15:S15").Select
ActiveCell.FormulaR1C1 = _
"=IF(R8C8='[Liste des docs RV 02.xlsx]Sheet1 '!R1C6,IF('[Liste des docs RV 02.xlsx]Sheet1 '!R[-13]C6<>"""",'[Liste des docs RV 02.xlsx]Sheet1 '!R[-13]C2,""-""),"""")"
Range("H15:S15").Select
Selection.AutoFill Destination:=Range("H15:S26"), Type:=xlFillDefault
Range("H15:S26").Select
ElseIf ("H8" = MAINTENANCE) Then
Range("H15:S15").Select
ActiveCell.FormulaR1C1 = _
"=IF(R8C8='[Liste des docs RV 02.xlsx]Sheet1 '!R1C6,IF('[Liste des docs RV 02.xlsx]Sheet1 '!R[-13]C6<>"""",'[Liste des docs RV 02.xlsx]Sheet1 '!R[-13]C2,""-""),"""")"
Range("H15:S15").Select
Selection.AutoFill Destination:=Range("H15:S26"), Type:=xlFillDefault
Range("H15:S26").Select
ElseIf ("H8" = ADMIN) Then
Range("H15:S15").Select
ActiveCell.FormulaR1C1 = _
"=IF(R8C8='[Liste des docs RV 02.xlsx]Sheet1 '!R1C5,IF('[Liste des docs RV 02.xlsx]Sheet1 '!R[-13]C5<>"""",'[Liste des docs RV 02.xlsx]Sheet1 '!R[-13]C2,""-""),"""")"
Range("H15:S15").Select
Selection.AutoFill Destination:=Range("H15:S25"), Type:=xlFillDefault
Range("H15:S25").Select
End If
End Sub
----------------------------------------------------------------------------------------------------------------------------------------
Si quelqu'un à une idée. Peut-etre sans forcement passé par VBA
Merci à tous.
je peux vous fournir mon fichier si nécessaire.
J'essaye de me débrouiller avec mes petites connaissances en excel ..
Je vous explique mon soucis
J'ai un fichier excel auquel j'ai une base de donnée.
Je viens de créer un autre fichier pour sélectionner les données selon 3 groupes différents.
J'ai trouvé une formule qui me permet de récupérer des données en fonctions d'un groupe.
Le souci c'est que j'aimerais que cela puisse être variable selon les 2 autres groupes. Ce qui n'est pas possible avec ma formule statique.
J'ai essayé VBA avec l'enregistreur .. Le souci c'est que quand je remplace 2 Lettres dans ma formule cela s'écrit de la même façon dans VBA, on dirait qu'il n'est pas précis dans ce que je lui demande en passant par l'enregistrement.
Ma formule de base qui fonctionne pour un groupe est :
=SI($H$8='[Liste des docs RV 02.xlsx]Sheet1 '!$E$1;SI('[Liste des docs RV 02.xlsx]Sheet1 '!$E2<>"";'[Liste des docs RV 02.xlsx]Sheet1 '!$B2;"-");"")
Elle est donc valable uniquement quand je selectionne "ADMIN" en H8
J'aimerais qu'elle soit variable en changeant uniquement les lettres en gras par les groupe suivant
PROD = F
MAINTENANCE = G
ADMIN = E
-----------------------------------------------------------------------------------------------------------
Voici le VBA associé
Sub Macro1()
'
' Macro1 Macro
'
If ("H8" = PROD) Then
Range("H15:S15").Select
ActiveCell.FormulaR1C1 = _
"=IF(R8C8='[Liste des docs RV 02.xlsx]Sheet1 '!R1C6,IF('[Liste des docs RV 02.xlsx]Sheet1 '!R[-13]C6<>"""",'[Liste des docs RV 02.xlsx]Sheet1 '!R[-13]C2,""-""),"""")"
Range("H15:S15").Select
Selection.AutoFill Destination:=Range("H15:S26"), Type:=xlFillDefault
Range("H15:S26").Select
ElseIf ("H8" = MAINTENANCE) Then
Range("H15:S15").Select
ActiveCell.FormulaR1C1 = _
"=IF(R8C8='[Liste des docs RV 02.xlsx]Sheet1 '!R1C6,IF('[Liste des docs RV 02.xlsx]Sheet1 '!R[-13]C6<>"""",'[Liste des docs RV 02.xlsx]Sheet1 '!R[-13]C2,""-""),"""")"
Range("H15:S15").Select
Selection.AutoFill Destination:=Range("H15:S26"), Type:=xlFillDefault
Range("H15:S26").Select
ElseIf ("H8" = ADMIN) Then
Range("H15:S15").Select
ActiveCell.FormulaR1C1 = _
"=IF(R8C8='[Liste des docs RV 02.xlsx]Sheet1 '!R1C5,IF('[Liste des docs RV 02.xlsx]Sheet1 '!R[-13]C5<>"""",'[Liste des docs RV 02.xlsx]Sheet1 '!R[-13]C2,""-""),"""")"
Range("H15:S15").Select
Selection.AutoFill Destination:=Range("H15:S25"), Type:=xlFillDefault
Range("H15:S25").Select
End If
End Sub
----------------------------------------------------------------------------------------------------------------------------------------
Si quelqu'un à une idée. Peut-etre sans forcement passé par VBA
Merci à tous.
je peux vous fournir mon fichier si nécessaire.