VB Excel petite aide
Résolu
Prince Mehdi
Messages postés
34
Date d'inscription
Statut
Membre
Dernière intervention
-
Prince Mehdi Messages postés 34 Date d'inscription Statut Membre Dernière intervention -
Prince Mehdi Messages postés 34 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un petit soucis, je suis actuellement en stage chez GDF Suez en 1ère année DUT QLIO. Le technicien maintenance et le responsable du site m'ont demandé de réaliser deux programmes en VB. Ils y connaissent rien en programmation donc même si je débute en programmation VB j'essaie de me débrouiller d'apprendre petit à petit. J'ai des idées mais je n'arrive pas à écrire un programme correct.
Le premier programme
Le technicien maintenance du site a un problème, lorsqu'il doit changer de filtres et de courroies sur des centrales d'air, il faut qu'il se déplace pour voir quelles longueurs de filtres et de courroies il a besoin, puis qu'il aille les chercher dans les chaufferies. C'est une perte de temps inutile. Pour cela dans un premier temps j'ai crée un programme très simple qui en fonction du numéro de la CTA rentrée donne les longueurs de filtres et de courroies correspondantes:
PublicSub Filtres_et_courroies ( )
Dim CTA As Integer
CTA = inputbox ("Sur quelle Centrale de Traitement d'Air souhaitez vous intervenir ?")
If CTA = 1 then
MsgBox "Filtres : media en carton 180 * 50"
MsgBox "Courroies : Texrope VP2"
End If
If CTA = 2 etc...
...
End Sub
Bon ce premier programme est très simpliste mais il a l'avantage de marcher. ^^ Maintenant j'aimerai améliorer l'interface c'est-à-dire est-il possible d'avoir le message et la réponse dans le même bouton ? Le technicien n'entre pas seulement des chiffres pour les CTA mais aussi des noms: CTA 1 mais aussi CTA Auditorium, comment avoir un type qui fonctionne pour des chiffres mais aussi des caractères ?
Second programme:
Maintenant le technicien maintenance a besoin d'aller chercher ces filtres et ces courroies. J'ai crée sous Excel un fichier de gestion de stocks. J'aimerai que mon programme surligne la ligne ou les lignes correspondant à la référence rentrée par l'utilisateur. Par exemple, il rentre filca21050 pour un filtre en carton de 210*50 et le programme surligne la ligne correspondante dans la feuille excel qui indique notamment la quantité, le lieu.
Merci pour votre aide et je rappelle que je suis débutant j'ai commencé le VBA il y a 2 mois ^^"
J'ai un petit soucis, je suis actuellement en stage chez GDF Suez en 1ère année DUT QLIO. Le technicien maintenance et le responsable du site m'ont demandé de réaliser deux programmes en VB. Ils y connaissent rien en programmation donc même si je débute en programmation VB j'essaie de me débrouiller d'apprendre petit à petit. J'ai des idées mais je n'arrive pas à écrire un programme correct.
Le premier programme
Le technicien maintenance du site a un problème, lorsqu'il doit changer de filtres et de courroies sur des centrales d'air, il faut qu'il se déplace pour voir quelles longueurs de filtres et de courroies il a besoin, puis qu'il aille les chercher dans les chaufferies. C'est une perte de temps inutile. Pour cela dans un premier temps j'ai crée un programme très simple qui en fonction du numéro de la CTA rentrée donne les longueurs de filtres et de courroies correspondantes:
PublicSub Filtres_et_courroies ( )
Dim CTA As Integer
CTA = inputbox ("Sur quelle Centrale de Traitement d'Air souhaitez vous intervenir ?")
If CTA = 1 then
MsgBox "Filtres : media en carton 180 * 50"
MsgBox "Courroies : Texrope VP2"
End If
If CTA = 2 etc...
...
End Sub
Bon ce premier programme est très simpliste mais il a l'avantage de marcher. ^^ Maintenant j'aimerai améliorer l'interface c'est-à-dire est-il possible d'avoir le message et la réponse dans le même bouton ? Le technicien n'entre pas seulement des chiffres pour les CTA mais aussi des noms: CTA 1 mais aussi CTA Auditorium, comment avoir un type qui fonctionne pour des chiffres mais aussi des caractères ?
Second programme:
Maintenant le technicien maintenance a besoin d'aller chercher ces filtres et ces courroies. J'ai crée sous Excel un fichier de gestion de stocks. J'aimerai que mon programme surligne la ligne ou les lignes correspondant à la référence rentrée par l'utilisateur. Par exemple, il rentre filca21050 pour un filtre en carton de 210*50 et le programme surligne la ligne correspondante dans la feuille excel qui indique notamment la quantité, le lieu.
Merci pour votre aide et je rappelle que je suis débutant j'ai commencé le VBA il y a 2 mois ^^"
A voir également:
- VB Excel petite aide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel moyenne - Guide
41 réponses
bonjour,
alors premier truc, pr ta premiere procédure, tu peux aussi utiliser un structure select case..when... :
select case CTA
when 1 then MsgBox "Filtres : media en carton 180 * 50" & vbcrlf & "Courroies : Texrope VP2"
when 2 blablablabla
end select
(au passage j'ai tt mis ds une seule msgbox avec un retour charriot)
ensuite "avoir le message et la réponse sur un meme bouton" : là j'ai pas bien compris.... :s
qqes question spour le 2eme programme : qd ton utilisateur l'execute, dans quel classeur/feuille se trouve-t-il ?
derniere question : pourquoi ne pas faire "tout en un", un programme qui demande le CTA, affiche les ref en msgbox, ouvre ton fichier de stocks et mets la ligne en surbrillance (ou "filtre" cette ligne) ?
alors premier truc, pr ta premiere procédure, tu peux aussi utiliser un structure select case..when... :
select case CTA
when 1 then MsgBox "Filtres : media en carton 180 * 50" & vbcrlf & "Courroies : Texrope VP2"
when 2 blablablabla
end select
(au passage j'ai tt mis ds une seule msgbox avec un retour charriot)
ensuite "avoir le message et la réponse sur un meme bouton" : là j'ai pas bien compris.... :s
qqes question spour le 2eme programme : qd ton utilisateur l'execute, dans quel classeur/feuille se trouve-t-il ?
derniere question : pourquoi ne pas faire "tout en un", un programme qui demande le CTA, affiche les ref en msgbox, ouvre ton fichier de stocks et mets la ligne en surbrillance (ou "filtre" cette ligne) ?
Déjà merci pour votre réponse tompols.
Effectivement la structure select est plus intéressante et plus claire je ne la connaissais pas. Pour ce que vous n'avez pas compris, en fait je voulais savoir si l'utilisateur peut rentrer la CTA et les réponses s'affiche directement dans le même bouton mais c'est sans grand intérêt.
Pour l'idée du Tout en un c'est serait vraiment bien si j'arrivais à le faire c'est une bonne idée. Mais comment faire pour que le fichier de stock s'ouvre automatiquement après l'exécution de la première partie. Puis il faudrait que mon programme me permette de surligner la ligne dans le fichier de stock. En fait dans mon fichier de stocks, j'ai inscrit pour chaque élément une référence. Par exemple pour un filtre en carton de 180 * 56 la référence est filca18056. j'aimerai que l'utilisateur tape cetet référence et le programme surligne toute la ligne correspondante à cette référence.
Pour ma feuille de gestion de stocks c'est un fichier excel à part entière et j'ouvre une procédure à partir de ce fichier.
Effectivement la structure select est plus intéressante et plus claire je ne la connaissais pas. Pour ce que vous n'avez pas compris, en fait je voulais savoir si l'utilisateur peut rentrer la CTA et les réponses s'affiche directement dans le même bouton mais c'est sans grand intérêt.
Pour l'idée du Tout en un c'est serait vraiment bien si j'arrivais à le faire c'est une bonne idée. Mais comment faire pour que le fichier de stock s'ouvre automatiquement après l'exécution de la première partie. Puis il faudrait que mon programme me permette de surligner la ligne dans le fichier de stock. En fait dans mon fichier de stocks, j'ai inscrit pour chaque élément une référence. Par exemple pour un filtre en carton de 180 * 56 la référence est filca18056. j'aimerai que l'utilisateur tape cetet référence et le programme surligne toute la ligne correspondante à cette référence.
Pour ma feuille de gestion de stocks c'est un fichier excel à part entière et j'ouvre une procédure à partir de ce fichier.
re,
aucun mais une question encore : ds le fichier stock, l'utilisateur doit taper la ref et ça met la ligne en surbrillance => c pas tres pratique pour l'utilisateur ça, il va devoir parcourir le fichier pour retrouver sa ligne, en plus ça nous oblige à gere le retour en couleur normale....pourquoi pas juste un filtre automatique ? l'avantage que l'utilisateur n'a pas à saisir (pas de possibilité de faute de frappe) mais juste à choisir la ref ds une liste déroulante, et seule la ligne concernée sera affichée...
apres qd je te lis, jme dis qu'on peut aussi determiner la ref dès ton premier code, ensuite ouvrir ton fichier stock (Workbooks.Open Filename:="D:\magestiondestock.xls")et filtrer la ligne concernée non ? en mode Tout En Un....
ça ferait un truc du genre :
'utilisation du filtre automatique à voir ds l'aide vba....
au passage dsl mais j'm'étais un peu mélangé avec la syntaxe du CASE...WHEN en SQL, la synjtaxe ci-dessus est correcte....
aucun mais une question encore : ds le fichier stock, l'utilisateur doit taper la ref et ça met la ligne en surbrillance => c pas tres pratique pour l'utilisateur ça, il va devoir parcourir le fichier pour retrouver sa ligne, en plus ça nous oblige à gere le retour en couleur normale....pourquoi pas juste un filtre automatique ? l'avantage que l'utilisateur n'a pas à saisir (pas de possibilité de faute de frappe) mais juste à choisir la ref ds une liste déroulante, et seule la ligne concernée sera affichée...
apres qd je te lis, jme dis qu'on peut aussi determiner la ref dès ton premier code, ensuite ouvrir ton fichier stock (Workbooks.Open Filename:="D:\magestiondestock.xls")et filtrer la ligne concernée non ? en mode Tout En Un....
ça ferait un truc du genre :
Select Case CTA Case 1 MsgBox "Filtres : media en carton 180 * 50" & vbCrLf & "Courroies : Texrope VP2" ref = filca18050 Case 2 blablabla End Select Workbooks.Open Filename:="D:\messtock.xls" Set feuilstock = Workbooks("mestocks.xls").Sheets("stock") feuilstock.AutoFilterMode = True
'utilisation du filtre automatique à voir ds l'aide vba....
au passage dsl mais j'm'étais un peu mélangé avec la syntaxe du CASE...WHEN en SQL, la synjtaxe ci-dessus est correcte....
pour le cas ou l'utilisateur saisirai soit un chiffre soit un mot genre auditorium tu remplace le type de CTA de integer vers string (un chiffre en string restera un chiffre mais laissera la possibilité a la variable d'avoir des lettres). par contre je ne sais pas si l'on peut utiliser un or dans un select case, si ce n'est pas possible tu peu utiliser tes if et mettre "if CTA="1" or CTA="auditorium" then ... "
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
re,
pas de pb pour evaluer des strings avec select case mais pas de OR (!?) plutot des CASE ( CASE 1 blablabla CASE "auditorium" blablabla etc)....
pas de pb pour evaluer des strings avec select case mais pas de OR (!?) plutot des CASE ( CASE 1 blablabla CASE "auditorium" blablabla etc)....
le OR c'est pour que le 1 et le auditorium soit sur une même ligne et ai ainsi un seul message de retour (c'est juste par soucis d'économie de place ^^)
mais je doute qu'il n'y ai pas de probleme pour le string dans le select case si la variable est un integer (c'est peut etre qu'une répétition inutile de ma part)
mais je doute qu'il n'y ai pas de probleme pour le string dans le select case si la variable est un integer (c'est peut etre qu'une répétition inutile de ma part)
re,
pour la meme ligne :
Case "1", "bla" (separer les differents case par des virugules)
"mais je doute qu'il n'y ai pas de probleme pour le string dans le select case si la variable est un integer (c'est peut etre qu'une répétition inutile de ma part) " là le probleme n'est pas le select case mais est en amont, au niveau de la variable : essayer de stocker une string ds une variable integer renverra une erreur (incompatibilité de type)
pour la meme ligne :
Case "1", "bla" (separer les differents case par des virugules)
"mais je doute qu'il n'y ai pas de probleme pour le string dans le select case si la variable est un integer (c'est peut etre qu'une répétition inutile de ma part) " là le probleme n'est pas le select case mais est en amont, au niveau de la variable : essayer de stocker une string ds une variable integer renverra une erreur (incompatibilité de type)
c'est bien on est sur la même longueur d'onde ^^
donc pour résumer:
- premiere question:
comment avoir un type qui fonctionne pour des chiffres mais aussi des caractères ? changer le type de CTA en string (et par la même occasion utiliser un select case)
- pour la deuxième question:
d'après ce que j'ai compris de la proposition de tompols ca serai de faire un tri
mais a ta place j'aurai fait une interface graphique (sur excel via vba) pour que l'utilisateur puisse choisir sa référence ou son cta par un combobox (liste déroulante), et ainsi lors du clic sur le bouton de validation, donner toutes les info juste en dessous
dans l'avenir ca pourrai permettre de rajouter des fonctionnalité aisément via des onglets ou des boutons supplémentaire, d'effectuer des tri sur un ou plusieurs critère, etc...
donc pour résumer:
- premiere question:
comment avoir un type qui fonctionne pour des chiffres mais aussi des caractères ? changer le type de CTA en string (et par la même occasion utiliser un select case)
- pour la deuxième question:
d'après ce que j'ai compris de la proposition de tompols ca serai de faire un tri
mais a ta place j'aurai fait une interface graphique (sur excel via vba) pour que l'utilisateur puisse choisir sa référence ou son cta par un combobox (liste déroulante), et ainsi lors du clic sur le bouton de validation, donner toutes les info juste en dessous
dans l'avenir ca pourrai permettre de rajouter des fonctionnalité aisément via des onglets ou des boutons supplémentaire, d'effectuer des tri sur un ou plusieurs critère, etc...
re,
pour le 1, dsl j'avais pas vu l'histoire de typage....string c bien
pour le 2 ma propal était de faire un filtre pas un tri
apres j'essayais de faire simple, sinon on peut imaginer stocker les valeurs possibles de CTA ds une table (avec les refs correspondantes), une table des ref (code, description -type si nécessaire ?- ), un table stock, une table mouvement de stock etc....mais là on s'oriente vers du dev d'appli avec base de données (plus propre, plus "pro" mais plus long à faire et on repart à zéro)...y'a aussi la piste avec un userform et des tableaux excel, à mi-chemin entre les 2 (j'aime pas trop, pour moi soit on bricole, soit on fait une solution plus "industrialisée", un trop gros "bricolage" amène peu de retour sur investissement, et la maintenance pose souvent probleme.....)
pour le 1, dsl j'avais pas vu l'histoire de typage....string c bien
pour le 2 ma propal était de faire un filtre pas un tri
apres j'essayais de faire simple, sinon on peut imaginer stocker les valeurs possibles de CTA ds une table (avec les refs correspondantes), une table des ref (code, description -type si nécessaire ?- ), un table stock, une table mouvement de stock etc....mais là on s'oriente vers du dev d'appli avec base de données (plus propre, plus "pro" mais plus long à faire et on repart à zéro)...y'a aussi la piste avec un userform et des tableaux excel, à mi-chemin entre les 2 (j'aime pas trop, pour moi soit on bricole, soit on fait une solution plus "industrialisée", un trop gros "bricolage" amène peu de retour sur investissement, et la maintenance pose souvent probleme.....)
Merci garion28. L'idée du combobox est intéressante mais je ne sais pas comment elle fonctionne. Et d'après ce que j'ai compris tompols, une fois que le programme a ouvert mon fichier, il faut utiliser le filtre automatique pour pouvoir effectuer une recherche de la référence dans la feuille Excel.
Tompols:
"ds le fichier stock, l'utilisateur doit taper la ref et ça met la ligne en surbrillance => c pas tres pratique pour l'utilisateur ça, il va devoir parcourir le fichier pour retrouver sa ligne, en plus ça nous oblige à gere le retour en couleur normale....pourquoi pas juste un filtre automatique ? l'avantage que l'utilisateur n'a pas à saisir (pas de possibilité de faute de frappe) mais juste à choisir la ref ds une liste déroulante, et seule la ligne concernée sera affichée... "
Pour les références, en fait elles sont logiques, si le technicien maintenance a besoin d'un filtre 280 * 56, la référence est: 28056. Je pense que c'est plsu pratqieu de la chercher dans un menu déroulant puisqu'il n'y a pas besoin de chercher dans ce cas. Je pensais faire un programme qui en fonction de la référence rentrée surligne la ligne correspondante dans la feuille.
Pour mon second programme j'ai l'idée mais pas la structure...
PublicSub Recherche ( )
Dim ref As String
ref = inputbox ("Quelle est votre référence ?")
Select case ref
ref ...
ref ...
End Select
End Sub
Le problème c'est que mon fichier excel contient environ 200 références... -__-"
Tompols:
"ds le fichier stock, l'utilisateur doit taper la ref et ça met la ligne en surbrillance => c pas tres pratique pour l'utilisateur ça, il va devoir parcourir le fichier pour retrouver sa ligne, en plus ça nous oblige à gere le retour en couleur normale....pourquoi pas juste un filtre automatique ? l'avantage que l'utilisateur n'a pas à saisir (pas de possibilité de faute de frappe) mais juste à choisir la ref ds une liste déroulante, et seule la ligne concernée sera affichée... "
Pour les références, en fait elles sont logiques, si le technicien maintenance a besoin d'un filtre 280 * 56, la référence est: 28056. Je pense que c'est plsu pratqieu de la chercher dans un menu déroulant puisqu'il n'y a pas besoin de chercher dans ce cas. Je pensais faire un programme qui en fonction de la référence rentrée surligne la ligne correspondante dans la feuille.
Pour mon second programme j'ai l'idée mais pas la structure...
PublicSub Recherche ( )
Dim ref As String
ref = inputbox ("Quelle est votre référence ?")
Select case ref
ref ...
ref ...
End Select
End Sub
Le problème c'est que mon fichier excel contient environ 200 références... -__-"
pour manipuler un combobox c'est combobox.additem(item) tu peu trouver la syntaxe et d'autre aide pour ca facilement sur internet
le tout c'est de parcourir toutes les référence et les mettres dans la combobox a l'ouverture du fichier ou bien a un certain moment (après je ne sais plus si ca peu se faire direct ou bien si l'on doit utiliser un tableau
après pour le nombre de ref et le select case, je ne sais pas si tu peu mettre une boucle dans le select case afin de ne pas avoir a écrire tout les cases. mais pour moi ce n'est pas très pratique pour 200 ref puisque ca peu nécessiter une mise en page au cas par cas
le tout c'est de parcourir toutes les référence et les mettres dans la combobox a l'ouverture du fichier ou bien a un certain moment (après je ne sais plus si ca peu se faire direct ou bien si l'on doit utiliser un tableau
après pour le nombre de ref et le select case, je ne sais pas si tu peu mettre une boucle dans le select case afin de ne pas avoir a écrire tout les cases. mais pour moi ce n'est pas très pratique pour 200 ref puisque ca peu nécessiter une mise en page au cas par cas
OK merci pour la réponse ^^ Est ce que un Fo pour des c ellules ça marche. Par exemple:
...
ref = inputbox ("Quelle référence ?")
For CellsB2 to CellsB156
Surligner la ligne de la référence rentrée
...
J'ai cette idée pour le moment sinon je pense qu'il faudra faire au cas par cas... TT_TT
...
ref = inputbox ("Quelle référence ?")
For CellsB2 to CellsB156
Surligner la ligne de la référence rentrée
...
J'ai cette idée pour le moment sinon je pense qu'il faudra faire au cas par cas... TT_TT
re, pour ton 2eme code, tu peux faire un truc comme ça :
le probleme est qu'il va te falloir gerer le retour à une couleur normale à la fermeture du classeur....
avec un filtre :
Public Sub Recherche() Dim ref As String ref = InputBox("Quelle est votre référence ?") derlig = Range("B65536").End(xlUp).Row For i = 2 To derlig 'la premiere ligne contient les titres de colonnes If Range("A" & i).Value = ref Then Rows(i).Interior.ColorIndex = 6 End If Next i End Sub
le probleme est qu'il va te falloir gerer le retour à une couleur normale à la fermeture du classeur....
avec un filtre :
Sub Recherche() Dim ref As String ref = InputBox("Quelle est votre référence ?") Application.ScreenUpdating = False If ActiveSheet.AutoFilterMode = True Then ActiveSheet.AutoFilterMode = False End If Rows("1:1").AutoFilter Selection.AutoFilter Field:=1, Criteria1:=ref Application.ScreenUpdating = True End Sub
Merci Tompols mais je ne comprends cette ligne du code:
derlig = Range("B65536").End(xlUp).Row
En fait le premier FOR permet de passer en revue toutes les références.
Le IF qui suit sert à quoi ?
pour le retour à la couleur normale, c'est une deuxième procédure associée à la première que tu asécrite ? Je ne comprends pas un gros passage du code:
Application.ScreenUpdating = False
If ActiveSheet.AutoFilterMode = True Then
ActiveSheet.AutoFilterMode = False
End If
Rows("1:1").AutoFilter
Selection.AutoFilter Field:=1, Criteria1:=ref
Application.ScreenUpdating = True
Merci pour ton aide ^^
derlig = Range("B65536").End(xlUp).Row
En fait le premier FOR permet de passer en revue toutes les références.
Le IF qui suit sert à quoi ?
pour le retour à la couleur normale, c'est une deuxième procédure associée à la première que tu asécrite ? Je ne comprends pas un gros passage du code:
Application.ScreenUpdating = False
If ActiveSheet.AutoFilterMode = True Then
ActiveSheet.AutoFilterMode = False
End If
Rows("1:1").AutoFilter
Selection.AutoFilter Field:=1, Criteria1:=ref
Application.ScreenUpdating = True
Merci pour ton aide ^^
derlig = Range("B65536").End(xlUp).Row
sert a trouver la derniere ligne vide a partir de la fin du fichier, c'est une fonction de vba
Le IF qui suit sert à quoi ?
il sert a surligner la ligne quand elle correspond avec ref
sert a trouver la derniere ligne vide a partir de la fin du fichier, c'est une fonction de vba
Le IF qui suit sert à quoi ?
il sert a surligner la ligne quand elle correspond avec ref
alors :
- "pour le retour à la couleur normale, c'est une deuxième procédure associée à la première que tu asécrite ?" => en fait je l'ai pas écrite mais il s'agirait de créer une procedure evenementielle (Private Sub Workbook_BeforeClose(Cancel As Boolean)) qui parcours les lignes avant la fermeture du classeur et si la couleur est celle définie ds la premiere macro(ColorIndex = 6), remet en non-colorisé...j'l'ai pasécrite parceque c'est vraiment pas ma piste préferée et puis fo bien que tu bosses un peu, sinon ds pas lgtps on te retrouve sur le forum avec les memes question :p
-explication du code
voilà....
- "pour le retour à la couleur normale, c'est une deuxième procédure associée à la première que tu asécrite ?" => en fait je l'ai pas écrite mais il s'agirait de créer une procedure evenementielle (Private Sub Workbook_BeforeClose(Cancel As Boolean)) qui parcours les lignes avant la fermeture du classeur et si la couleur est celle définie ds la premiere macro(ColorIndex = 6), remet en non-colorisé...j'l'ai pasécrite parceque c'est vraiment pas ma piste préferée et puis fo bien que tu bosses un peu, sinon ds pas lgtps on te retrouve sur le forum avec les memes question :p
-explication du code
Application.ScreenUpdating = False ' => désactive le rafraichissement écran, du coup c plus rapide et ça clignote pas de partout :) If ActiveSheet.AutoFilterMode = True Then '=>la je teste si le filtre auto est déjà activé ActiveSheet.AutoFilterMode = False '=>si oui, je le désactive pour éviter des erreurs par la suite(ouaip jme suis pas cassé trop la tete desactiver plutot que gerer des erreurs....). End If Rows("1:1").AutoFilter '=> active le filtre automatique Selection.AutoFilter Field:=1, Criteria1:=ref '=>filtre sur le premier champ du tableau avec la valeur de ref Application.ScreenUpdating = True ' =>réactive l'affichage
voilà....
Très bien merci pour vos réponses je vais déjà commencer par faire ces procédures pour voir ce que ça donne. Je vous iens au courant ;-) Merci encore. :)
Voici les 2 procédures que j'ai tapées pour le moment:
Public Sub Filtres_courroies()
Dim CTA As String
CTA = InputBox("Sur quelle C.T.A. voulez-vous intervenir ?")
Select Case CTA
Case 1
MsgBox "FILTRES" & vbCrLf & "dimensions: 180*550" & vbCrLf & vbCrLf & "COURROIES" & vbCrLf & "désignation: 1900 SPZ"
Case 2
MsgBox "FILTRES" & vbCrLf & "dimensions: 1800*5500" & vbCrLf & vbCrLf & "COURROIES" & vbCrLf & "désignation: 1900 SPA"
End Select
End Sub
Public Sub recherche()
Dim ref As String
ref = InputBox("Quelle est la référence de l'élément que vous recherchez ?")
For i = 5 To 165 Step 1
For j = 2 To 12 Step 1
If Range("A" & i & j).Value = ref Then
Rows(i & j).InteriorColorIndex = 10
Cells(i, j).Interior.Color = RGB(185, 253, 208)
End If
Next
Next
End Sub
Mais ma deuxième procédure ne colorie pas la ligne de la référence... j'ai essayé de modifier ma procédure mais toujours rien T_T
Public Sub Filtres_courroies()
Dim CTA As String
CTA = InputBox("Sur quelle C.T.A. voulez-vous intervenir ?")
Select Case CTA
Case 1
MsgBox "FILTRES" & vbCrLf & "dimensions: 180*550" & vbCrLf & vbCrLf & "COURROIES" & vbCrLf & "désignation: 1900 SPZ"
Case 2
MsgBox "FILTRES" & vbCrLf & "dimensions: 1800*5500" & vbCrLf & vbCrLf & "COURROIES" & vbCrLf & "désignation: 1900 SPA"
End Select
End Sub
Public Sub recherche()
Dim ref As String
ref = InputBox("Quelle est la référence de l'élément que vous recherchez ?")
For i = 5 To 165 Step 1
For j = 2 To 12 Step 1
If Range("A" & i & j).Value = ref Then
Rows(i & j).InteriorColorIndex = 10
Cells(i, j).Interior.Color = RGB(185, 253, 208)
End If
Next
Next
End Sub
Mais ma deuxième procédure ne colorie pas la ligne de la référence... j'ai essayé de modifier ma procédure mais toujours rien T_T
Public Sub Filtres_courroies()
Dim CTA As String
CTA = InputBox("Sur quelle C.T.A. voulez-vous intervenir ?")
Select Case CTA
Case 1
MsgBox "FILTRES" & vbCrLf & "dimensions: 180*550" & vbCrLf & vbCrLf & "COURROIES" & vbCrLf & "désignation: 1900 SPZ"
Case 2
MsgBox "FILTRES" & vbCrLf & "dimensions: 1800*5500" & vbCrLf & vbCrLf & "COURROIES" & vbCrLf & "désignation: 1900 SPA"
End Select
End Sub
Public Sub recherche()
Dim ref As String
ref = InputBox("Quelle est la référence de l'élément que vous recherchez ?")
derlig = Range("B65536").End(xlUp).Row
For i = 5 To derlig Step 1
If Range("C" & i).Value = ref Then
Rows(i).Interior.ColorIndex = 6
End If
Next i
End Sub
Sa a l'air de marcher !! Je tape la ou les références et c'est bon. Mais le problème c'est que ça me surligne toute la ligne ... Je voudrais que ça me surligne par exemple pour j = 2 To 11, j'ai rajouté un For j et un Next j à la fin mais ça marche pas. Quelqu'un peut m'aider ?
Dim CTA As String
CTA = InputBox("Sur quelle C.T.A. voulez-vous intervenir ?")
Select Case CTA
Case 1
MsgBox "FILTRES" & vbCrLf & "dimensions: 180*550" & vbCrLf & vbCrLf & "COURROIES" & vbCrLf & "désignation: 1900 SPZ"
Case 2
MsgBox "FILTRES" & vbCrLf & "dimensions: 1800*5500" & vbCrLf & vbCrLf & "COURROIES" & vbCrLf & "désignation: 1900 SPA"
End Select
End Sub
Public Sub recherche()
Dim ref As String
ref = InputBox("Quelle est la référence de l'élément que vous recherchez ?")
derlig = Range("B65536").End(xlUp).Row
For i = 5 To derlig Step 1
If Range("C" & i).Value = ref Then
Rows(i).Interior.ColorIndex = 6
End If
Next i
End Sub
Sa a l'air de marcher !! Je tape la ou les références et c'est bon. Mais le problème c'est que ça me surligne toute la ligne ... Je voudrais que ça me surligne par exemple pour j = 2 To 11, j'ai rajouté un For j et un Next j à la fin mais ça marche pas. Quelqu'un peut m'aider ?