Problème code dans USF de recherche

  • Initiateur de la discussion Initiateur de la discussion Bruno
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

B

Bruno

Guest
Bonjour à tous.

A partir de la feuille recherche, je saisis une valeur dans la textbox de l' USF qui me permet d' aller chercher cette valeur saisie dans la feuille BASE d' un autre classeur de me copier la ligne contenant cette valeur et de la coller en ligne 90 de la feuille recherche.
Avec le code suivant, ça fonctionne mais je n' arrive pas à fermer automatiquement la Base quand la ligne est collée sur la feuille recherche.

Mes connaissances en VBA étant limitées, je fais avec ça :

Private Sub CommandButton1_Click()

Workbooks.Open ("C:\temp\base.xls")
Dim Val As String
Dim lig As Long
Dim report As Range
Val = TextBox1.Value

If Val = "" Then Exit Sub

On Error Resume Next
lig = Cells.Find(Val, Range("A1"), , xlByRows).Row
If Err > 0 Then
MsgBox "La valeur cherchée, " & Val & ", n'existe pas " '& feuille
UserForm1.Show

Exit Sub
End If

Rows(lig).Interior.ColorIndex = xlNone
Set report = Rows(lig)
Windows("SEREF_CH.xls").Activate
Sheets("RECHERCHE").Select
lig = Range("A90").Row
Rows(lig) = report.Value
Unload UserForm1
Sheets("RECHERCHE").Select

End Sub

Peut-on arranger ça ?

Merci.
 
bonjour Bruno

je n'ai pas fait de tests , mais tu peux essayer cette adaptation


Private Sub CommandButton1_Click()
Dim Valeur As String
Dim Lig As Long
Dim Report As Range
Dim Wb As Workbook

Valeur = TextBox1.Value
If Valeur = "" Then Exit Sub

Set Wb = Workbooks.Open("C:\temp\base.xls")


On Error Resume Next
Lig = Cells.Find(Valeur, Range("A1"), , xlByRows).Row
If Err > 0 Then
MsgBox "La valeur cherchée, " & Valeur & ", n'existe pas " '& feuille
UserForm1.Show

Exit Sub
End If

Rows(Lig).Interior.ColorIndex = xlNone
Set Report = Rows(Lig)
Windows("SEREF_CH.xls").Activate
Sheets("RECHERCHE").Select
Lig = Range("A90").Row
Rows(Lig) = Report.Value

Wb.Close 'ferme le classeur

Unload UserForm1
Sheets("RECHERCHE").Select

End Sub


bon apres midi
MichelXld
 
Bonjour Michel,

Merci pour ta réponse, ton code fonctionne mais à la fermeture de la base, j' ai le message "Voulez-vous enregistrer les modifs apportées a Base.xls ".

Comme je ne modifie rien dans la base, ne peut-on pas éviter l' ouverture de cette fenêtre ? Il me semble qu' il y a une astuce mais je ne m' en souviens plus. Je vais chercher.

A Plus. Bruno.
 
Re,

J' avais ajouté SaveChanges:=False qui a l' air de fonctionner, mais j'ai encore un prob, lorsque la valeur saisie n' existe pas, j' ai bien la fenêtre "la valeur cherchée n' existe pas" et la base reste ouverte au lieu de se refermer.

Merci.
 
Encore merci Michel, ça fonctionne, par contre maintenant j' essaie de comprendre pourquoi les dates dans la base qui sont sous la forme 13/2/2005 se retrouvent dans la ligne de la feuille recherche sous forme 2/13/2005 bien que le format des cellules des 2 feuilles soit identique.

A plus . Bruno
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
491
Réponses
3
Affichages
203
Retour