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 video powerpoint - Guide
- Insertion filigrane word - Guide
- Insertion liste déroulante excel - 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à