Insertion
Résolu
kororo1
Messages postés
7
Statut
Membre
-
kororo1 Messages postés 7 Statut Membre -
kororo1 Messages postés 7 Statut Membre -
Bonjour à tous,
Je galère un peu sur un travail que je dois réaliser. J'ai un tableau qui a 4 colonnes (Material (colonne A), Material description (colonne B), Date (colonne C), Num inventaire(colonne D)). J'aimerai faire une macro qui quand on saisi le Material à l'aide d'un inputbox, il le recherche dans le tableau et sélectionne la ligne du material qu'on recherchait et demande ensuite à l'utilisateur (toujours avec un inputbox) de saisir la date du jour (colonne C) et le num inventaire(colonne D). Merci
Je galère un peu sur un travail que je dois réaliser. J'ai un tableau qui a 4 colonnes (Material (colonne A), Material description (colonne B), Date (colonne C), Num inventaire(colonne D)). J'aimerai faire une macro qui quand on saisi le Material à l'aide d'un inputbox, il le recherche dans le tableau et sélectionne la ligne du material qu'on recherchait et demande ensuite à l'utilisateur (toujours avec un inputbox) de saisir la date du jour (colonne C) et le num inventaire(colonne D). Merci
A voir également:
- Insertion
- Touche insertion clavier - Guide
- Insertion sommaire word - Guide
- Insertion filigrane word - Guide
- Insertion liste déroulante excel - Guide
- Insertion video powerpoint - Guide
2 réponses
Bonjour,
en vba faire Alt F11 pour accéder à l'éditeur.
Ensuite allez dans le module de la feuille concernée et mettre ce code:
Pour l'instant il faut sélectionner dans la colonne A le matériel.
Voir si cela convient, ensuite on fera une recherche automatique avec une InputBox
en vba faire Alt F11 pour accéder à l'éditeur.
Ensuite allez dans le module de la feuille concernée et mettre ce code:
Option Explicit Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then Dim myNum As Integer Dim TheDate As String TheDate = Application.InputBox("Entrez la Date", "Date", "16/06/2016") If IsDate(TheDate) Then TheDate = DateValue(TheDate) Else MsgBox "Date invalide" Exit Sub End If ActiveCell.Offset(0, 2).Value = TheDate myNum = Application.InputBox("Entrez le numero inventaire", "Numero inventaire", "1") ActiveCell.Offset(0, 3).Value = myNum End If End Sub
Pour l'instant il faut sélectionner dans la colonne A le matériel.
Voir si cela convient, ensuite on fera une recherche automatique avec une InputBox
Allez dans Developpeur, Inserer, Controle ActiveX, inserer un CommandButton;
Double clic sur le CommandButton.
Mettre ce code:
Voilà
Double clic sur le CommandButton.
Mettre ce code:
Option Explicit Private Sub CommandButton1_Click() Cherche End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then Dim myNum As Integer Dim TheDate As String TheDate = Application.InputBox("Entrez la Date", "Date", "16/06/2016") If IsDate(TheDate) Then TheDate = DateValue(TheDate) Else MsgBox "Date invalide" Exit Sub End If ActiveCell.Offset(0, 2).Value = TheDate myNum = Application.InputBox("Entrez le numero inventaire", "Numero inventaire", "1") ActiveCell.Offset(0, 3).Value = myNum End If End Sub Sub Cherche() 'déclaration des variables : Dim Trouve As Range, PlageDeRecherche As Range Dim Valeur_Cherchee As String, AdresseTrouvee As String Dim rep As String rep = InputBox("Entrez le matériel", "Recherche matériel", "Mon outil") If rep = "" Then Exit Sub '********* à adapter *********** 'affectation de valeurs aux variables : 'on cherche le mot Valeur_Cherchee = rep 'dans la première colonne de la feuille active Set PlageDeRecherche = ActiveSheet.Columns(1) '******************************* 'méthode find, ici on cherche la valeur exacte (LookAt:=xlWhole) Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole) 'traitement de l'erreur possible : Si on ne trouve rien : If Trouve Is Nothing Then 'ici, traitement pour le cas où la valeur n'est pas trouvée AdresseTrouvee = Valeur_Cherchee & " n'est pas présent dans " & PlageDeRecherche.Address MsgBox "Matériel introuvable" Exit Sub Else 'ici, traitement pour le cas où la valeur est trouvée AdresseTrouvee = Trouve.Address End If Range(AdresseTrouvee).Select 'vidage des variables Set PlageDeRecherche = Nothing Set Trouve = Nothing End Sub
Voilà