XL 2013 Aide macro

filtre69

XLDnaute Occasionnel
Bonjour @ tout le Forum.
J'ai un fichier avec userform tout fonctionne bien sauf le bouton Modifier je n'arrive pas a trouver la solution si quelqu'un aurait une idée.

Merci d'avance de votre aide

Cordialement
 

Pièces jointes

  • livraison.xlsm
    24.6 KB · Affichages: 15

ChTi160

XLDnaute Barbatruc
Bonjour filtre69
une amélioration!
à voir
VB:
Set r = Sheets("livraison").Columns(1).Find("*" & Me.TextBox1.Text & "*", , xlValues, xlWhole)
 'définit la recherche r (recherche la valeur de la TextBox1 dans la colonne 1 de l'onglet "Feuil1")
jean marie
 

ChTi160

XLDnaute Barbatruc
Re
Idem pour recherche
VB:
Private Sub Btrechercher_Click()
' Merci à Robert Barbatruc de excel-downloads.com pour cette macro
'Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) 'à la sortie de la TextBox1
Dim r As Range 'déclare la variable r (Recherche)
Dim x As Byte 'déclare la variable x (incrément de textbox)

Set r = Sheets("livraison").Columns(1).Find("*" & Me.TextBox1.Value & "*", , xlValues, xlWhole) 'définit la recherche r (recherche la valeur de la TextBox1 dans la colonne 1 de l'onglet "Feuil1")
If Not r Is Nothing Then 'condition si il existe au moint une occurrence trouvée
    For x = 1 To 4 'boucle sur les 4 textboxes -----Modifié pour récupérer le TextBox 1
        Me.Controls("TextBox" & x).Value = r.Offset(0, x - 1).Value 'récupère les informations de la ligne de r
    Next x 'prochaine textbox de la boucle
End If 'fin de la condition
End Sub
jean marie
 

ChTi160

XLDnaute Barbatruc
Re
pour Ajouter
Code:
Private Sub BtAjouter_Click()
Dim derligne As Integer
  If MsgBox("Confirmez-vous l'ajout des nouvelles don̩es?", vbYesNo, "comfimation") = vbYes Then
    derligne = Sheets("livraison").Range("A456541").End(xlUp).Row + 1
    Cells(derligne, 1) = Me.TextBox1.Value: Me.TextBox1.Value = "" 'si pas de Boucle
    Cells(derligne, 2) = Me.TextBox2.Value: Me.TextBox2.Value = "" 'Idem
    Cells(derligne, 3) = Me.TextBox3.Value: Me.TextBox3.Value = "" 'Idem
    Cells(derligne, 4) = Me.TextBox4.Value: Me.TextBox4.Value = "" 'Idem
    'ou une Boucle pour vider les Controls
    For i = 1 To 4 'si pas Me.TextBox1.Value = "" etc etc
    Me.Controls("TextBox" & i).Text = ""
    Next
  End If
End Sub
jean marie
 

filtre69

XLDnaute Occasionnel
Bonjour ChTi160 merci de l'aide je viens de mettre tes macro mais quand je fais une recherche il va ma cherche le premier nom et pas celui que je veux de plus si je veux le modifier j'ai une erreur 91 d'exécution variable objet ou variable de bloc non définie. il s'arrete sur: derligne = r.Row

Merci

Cordialement
 
Dernière édition:

filtre69

XLDnaute Occasionnel
Re,
Comment définir la variable derligne? quel code?
pour ( mais quand je fais une recherche il va ma cherche le premier nom et pas celui que je veux de plus )
quand je fais une recherche ex: je recherche a la recherche va sur la première textbox ou se trouver tata peut on faire la recherche sur les 2 premières lettre.

Merci
Cordialement
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Re
Bonjour Phil69970
pas compris
quand je fais une recherche ex: je recherche a la recherche va sur la première Textbox ou se trouver tata peut on faire la recherche sur les 2 premières lettre.
Oui tu peux faire une recherche sur 2 caractères , mais le problème sera la même Lol
Tu ne peux afficher qu'un Mot (TextBox)
il faudrait par exemple avoir une ListBox et Y mettre tout les mot qui correspondent et en sélectionner un lorsque que la Liste s'affine §
Phil69970
j'ai modifié car erreur
VB:
DernCol = Split(Range("A" & Derlig).CurrentRegion.Address, "$")(4) '4 au lieu de 3
jean marie
 

Phil69970

XLDnaute Barbatruc
Bonjour à tous

Le nom de la variable Derlig a changé donc derligne renvoyait une erreur

VB:
Private Sub Btmodifier_Click()
Dim Derlig As Long '&
Derlig = Worksheets("livraison").Range("A" & Rows.Count).End(xlUp).Row
Dim DernCol As Integer '%
DernCol = Split(Range("A" & Derlig).CurrentRegion.Address, "$")(4) '4 au lieu de 3

Set r = Sheets("livraison").Columns(1).Find("*" & Me.TextBox1.Text & "*", , xlValues, xlWhole) 'définit la recherche r (recherche la valeur de la TextBox1 dans la colonne 1 de l'onglet "Feuil1")
 ' If Not r Is Nothing Then 'condition si il existe au moint une occurrence trouvée
 'définit la recherche r (recherche la valeur de la TextBox1 dans la colonne 1 de l'onglet "Feuil1")

If MsgBox("Confirmez-vous la modification des nouvelles don̩es?", vbYesNo, "comfimation") = vbYes Then
'  derligne = r.Row
    DernCol = Split(Range("A" & Derlig).CurrentRegion.Address, "$")(4) '4 au lieu de 3
    Cells(Derlig, 1) = TextBox1.Value 'L'erreur etait ici le nom de la variable DerLig
    Cells(Derlig, 2) = TextBox2.Value 'L'erreur etait ici le nom de la variable DerLig
    Cells(Derlig, 3) = TextBox3.Value 'L'erreur etait ici le nom de la variable DerLig
    Cells(Derlig, 4) = TextBox4.Value 'L'erreur etait ici le nom de la variable DerLig
End If
'  End If
 
End Sub
@Phil69970
 

Discussions similaires

Réponses
5
Affichages
217
Réponses
31
Affichages
1 K

Statistiques des forums

Discussions
312 330
Messages
2 087 335
Membres
103 523
dernier inscrit
mounir2025