Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 retrouver la ligne col.A = valeur du textbox1 et renvoyer la valeur du textbox2 à la col. B

murainesouspatate

XLDnaute Occasionnel
Bonjour à tous et à toutes.
J'ai actuellement un petit soucis de renvoi de valeur contenu dans un textbox2 vers un autre classeur.
je m'explique : l'orsque je dois retoucher un devis déja enregistré, j'ai un userform qui contient 2 textbox, textbox 1 contient le N° de devis et le textbox 2 contient le tarif du devis. En cliquant sur le bouton valider, j'ouvre le classeur "Facturier" à la feuille "Enregistrement Devis", jusque là aucun problème, mais après je souhaite trouver à la colonne 1 de cette feuille le N° de devis correspondant au textbox 1 et renvoyer la valeur du textbox2 sur la même ligne colonne 11.
A ce jour, j'ai un message d'erreur de compilation et je n'arrive pas à voir ou ça pêche !
voici la macro :

Private Sub CommandButton1_Click()

Dim i As Integer
' Envoi le Montant Devis vers feuille N° Enregistrement Devis Divers

Application.ScreenUpdating = False

' Ouverture du fichier Devis-Facture BMC
Workbooks.Open ("G:\BMC\Devis - Facture BMC V6.0" & ".xlsm")
Windows("Devis - Facture BMC V6.0" & ".xlsm").Activate
Sheets("Enregistrement Devis").Select
With Selection
For i = 1 To 2000
If .Cells(i, 1) = TextBox1 Then
.Cells(i, 1).Offset(0, 11).Value = TextBox2

End If

Application.ScreenUpdating = True
Next
End With
End Sub


Merci de bien vouloir me donner un coup de pouce.....et bonne vacances à tous !
 

youky(BJ)

XLDnaute Barbatruc
Bonjour,
Voici 2 macros qui font le même truc
Non testé
Bruno
VB:
Private Sub CommandButton1_Click()
Dim i As Integer
' Envoi le Montant Devis vers feuille N° Enregistrement Devis Divers
Application.ScreenUpdating = False
' Ouverture du fichier Devis-Facture BMC
Workbooks.Open ("G:\BMC\Devis - Facture BMC V6.0" & ".xlsm")
Windows("Devis - Facture BMC V6.0" & ".xlsm").Activate
With Sheets("Enregistrement Devis")
.Select
For i = 1 To .[A65000].End(3).Row   '2000
If .Cells(i, 1) = CDbl(TextBox1) Then
'si N° est numeric il faut convertir textbox1 sinon supprimer le cdbl(...)
.Cells(i, 1).Offset(0, 11).Value = Textbox2
Exit For
End If
Next
End With
Application.ScreenUpdating = True
End Sub


Private Sub CommandButton1_Click()
Dim lig As Integer
Application.ScreenUpdating = False
Workbooks.Open ("G:\BMC\Devis - Facture BMC V6.0" & ".xlsm")
With Windows("Devis - Facture BMC V6.0" & ".xlsm")
.Activate
With .Sheets("Enregistrement Devis")
.Select
lig = Application.Match(CDbl(Textbox2), [A1:A65000], 0)
If IsNumeric(lig) Then .Cells(lig, 11) = Textbox2
End With
End With
Application.ScreenUpdating = True
End Sub
 

murainesouspatate

XLDnaute Occasionnel
bonjour youky, merci pour cette réponse rapide,
je viens de tester la 1ère solution et ça bogue à la ligne : For i = 1 To .[A65000].End(3).Row

pour la 2ème, ça bogue à la ligne : lig = Application.Match(CDbl(Textbox2), [A1:A65000], 0), bien que j'ai supprimé le point à la ligne du dessus " With.Sheets" au lieu de "With Sheets".

enfin dans les deux cas cela ne fonctionne pas et dans le textbox1 = 40 et textbox2 = 4203, c'est bien du numérique.

encore un coup de pouce serai le bien venue. merci
 

youky(BJ)

XLDnaute Barbatruc
Il faut laisser les points ils vont avec les with
lig = Application.Match(CDbl(Textbox2), [A1:A65000], 0)
j'ai oublié le point avant [A1:A65000], 0) donc .[A1:A65000], 0)
Un nouveau code pour la première macro
Bruno
VB:
Private Sub CommandButton1_Click()
Dim i As Integer
' Envoi le Montant Devis vers feuille N° Enregistrement Devis Divers
Application.ScreenUpdating = False
' Ouverture du fichier Devis-Facture BMC
Workbooks.Open ("G:\BMC\Devis - Facture BMC V6.0" & ".xlsm")
With Windows("Devis - Facture BMC V6.0" & ".xlsm")
.Activate 'pas obligatoire
With .Sheets("Enregistrement Devis")
.Select 'pas obligatoire
For i = 1 To .[A65000].End(3).Row   '2000
If .Cells(i, 1) = CDbl(TextBox1) Then
'si N° est numeric il faut convertir textbox1 sinon supprimer le cdbl(...)
.Cells(i, 1).Offset(0, 11).Value = Textbox2
Exit For
End If
Next
End With
End With
Application.ScreenUpdating = True
End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…