Remplacer la valeur d'une cellule par Texbox

Hades60250

XLDnaute Nouveau
Bonjour le Forum!

J'ai un UserForm dans lequel l'utilisateur choisi une entreprise via un Combobox.

Une fois cette entreprise sélectionnée, toutes les infos s'affichent dans différents Textbox.

Je souhaiterais que lorsqu'une info est erronée ou manquante, l'utilisateur change le texte du Texbox et lorsqu'il appuie sur le commandbutton cela charge la nouvelle info en lieu et place de l'ancienne.

La recherche des infos fonctionne, les données des entreprises s'affichent bien dans les Textbox, mais je ne parviens pas à modifier les cellules!

Voici mon code:

Private Sub Modifier_Click()

'Déclaration des variables utilisées
Dim Ligne As Long
Dim valeursaisie As String
Dim siren As String

For Ligne = 2 To Sheets("Liste").Range("A1").End(xlDown).Row
valeursaisie = Sheets("Liste").Range("A" & Ligne).Value
siren = Sheets("Liste").Range("B" & Ligne).Value

If Nom.Value = valeursaisie Then
valeursaisie = ActiveCell

siren = UserForm14.siren

End If

Next Ligne

End Sub

Merci par avance aux âmes charitables qui voudront bien m'aider !!!!! :p
 

Hulk

XLDnaute Barbatruc
Re : Remplacer la valeur d'une cellule par Texbox

Re,

Ce que veut dire Jp, (du moins je pense) c'est ça
Code:
Sheets("Liste").Range("A" & Ligne).Value = valeursaisie
Sheets("Liste").Range("B" & Ligne).Value = siren
à rajouter dans ta boucle For Ligne.

Cdt Hulk.
 

Hades60250

XLDnaute Nouveau
Re : Remplacer la valeur d'une cellule par Texbox

Je viens de tester... ça me vide totalement la feuille "Liste" !!!

Voici ce que j'ai entré:

Private Sub Modifier_Click()

'Déclaration des variables utilisées
Dim Ligne As Long
Dim valeursaisie As String
Dim siren As String

For Ligne = 2 To Sheets("Liste").Range("A1").End(xlDown).Row
Sheets("Liste").Range("A" & Ligne).Value = valeursaisie
Sheets("Liste").Range("B" & Ligne).Value = siren

If Nom.Value = valeursaisie Then
valeursaisie = ActiveCell

siren = UserForm14.siren

End If

Next Ligne

End Sub

Y aurait-il une erreur plus grosse que moi???????

Merci pour votre aide!
 

jp14

XLDnaute Barbatruc
Re : Remplacer la valeur d'une cellule par Texbox

Bonjour
C'est normal, car ce code met à jour toute les lignes
Code:
For Ligne = 2 To Sheets("Liste").Range("A1").End(xlDown).Row
.......................
next

IL faut utiliser le numéro de ligne qui a servi pour remplir les TextBox.


Le plus simple serait de mettre le fichier avec l'userform et des données fantaisistes sur le forum.

JP
 

jp14

XLDnaute Barbatruc
Re : Remplacer la valeur d'une cellule par Texbox

Bonsoir

Ci joint le code avec les modifications

a tester

Code:
Dim ligne As Long

Private Sub Fermer_Click()
Unload Me
End Sub

Private Sub Modifier_Click()
With Sheets("Liste")
If ligne = 0 Then Exit Sub
    .Range("B" & ligne).Value = siren
    .Range("C" & ligne).Value = telephone
    .Range("D" & ligne).Value = cellulaire
    .Range("E" & ligne).Value = fax
    .Range("F" & ligne).Value = contact
    .Range("G" & ligne).Value = positioncontact
    .Range("H" & ligne).Value = adresse
    .Range("I" & ligne).Value = complément
    .Range("J" & ligne).Value = cp
    .Range("K" & ligne).Value = ville
    .Range("L" & ligne).Value = mail
    .Range("M" & ligne).Value = net
    .Range("N" & ligne).Value = qualibat
    .Range("O" & ligne).Value = spécialité
    .Range("P" & ligne).Value = secteur_géo
    .Range("Q" & ligne).Value = Effectif
    .Range("R" & ligne).Value = Observations
End With

End Sub

Private Sub Nom_Change()
If Nom.ListIndex = -1 Then
ligne = 0
Exit Sub
End If
'Déclaration des variables utilisées


'Boucle permettant de chercher la valeur saisie
With Sheets("Liste")
ligne = Nom.ListIndex + 2
'listindex = 0 si pas le nom n'existe pas
' listindex =0 pour le premier nom qui correspond à la ligne 2
'Liste!A2:A65000

        'valeursaisie = .Range("A" & ligne).Value
       siren = .Range("B" & ligne).Value
       telephone = .Range("C" & ligne).Value
       cellulaire = .Range("D" & ligne).Value
       fax = .Range("E" & ligne).Value
       contact = .Range("F" & ligne).Value
       positioncontact = .Range("G" & ligne).Value
       adresse = .Range("H" & ligne).Value
       complément = .Range("I" & ligne).Value
       cp = .Range("J" & ligne).Value
       ville = .Range("K" & ligne).Value
       mail = .Range("L" & ligne).Value
       net = .Range("M" & ligne).Value
       qualibat = .Range("N" & ligne).Value
       spécialité = .Range("O" & ligne).Value
       secteur_géo = .Range("P" & ligne).Value
       Effectif = .Range("Q" & ligne).Value
       Observations = .Range("R" & ligne).Value
 End With
End Sub

Private Sub UserForm_Click()
ligne = 0
End Sub

JP
 

Hades60250

XLDnaute Nouveau
Re : Remplacer la valeur d'une cellule par Texbox

Ca y est ça marche, c'était juste un erreur de syntaxe sur les noms des Textbox.

Voici le code après modif:

Dim Ligne As Long
Dim valeursaisie As String

Private Sub Fermer_Click()
Unload Me
End Sub

Private Sub Modifier_Click()
With Sheets("Liste")
If Ligne = 0 Then Exit Sub
.Range("B" & Ligne).Value = siren
.Range("C" & Ligne).Value = telephone
.Range("D" & Ligne).Value = cellulaire
.Range("E" & Ligne).Value = fax
.Range("F" & Ligne).Value = contact
.Range("G" & Ligne).Value = position_contact
.Range("H" & Ligne).Value = adresse
.Range("I" & Ligne).Value = complément_adresse
.Range("J" & Ligne).Value = code_postal
.Range("K" & Ligne).Value = ville
.Range("L" & Ligne).Value = email
.Range("M" & Ligne).Value = net
.Range("N" & Ligne).Value = qualibat
.Range("O" & Ligne).Value = specialite
.Range("P" & Ligne).Value = zone
.Range("Q" & Ligne).Value = Effectif
.Range("R" & Ligne).Value = Observations
End With

End Sub

Private Sub Nom_Change()


If Nom.ListIndex = -1 Then
Ligne = 0
Exit Sub
End If
'Déclaration des variables utilisées


'Boucle permettant de chercher la valeur saisie
With Sheets("Liste")
Ligne = Nom.ListIndex + 2
'listindex = 0 si pas le nom n'existe pas
' listindex =0 pour le premier nom qui correspond à la ligne 2
'Liste!A2:A65000

Nom = .Range("A" & Ligne).Value
siren = .Range("B" & Ligne).Value
telephone = .Range("C" & Ligne).Value
cellulaire = .Range("D" & Ligne).Value
fax = .Range("E" & Ligne).Value
contact = .Range("F" & Ligne).Value
position_contact = .Range("G" & Ligne).Value
adresse = .Range("H" & Ligne).Value
complément_adresse = .Range("I" & Ligne).Value
code_postal = .Range("J" & Ligne).Value
ville = .Range("K" & Ligne).Value
email = .Range("L" & Ligne).Value
net = .Range("M" & Ligne).Value
qualibat = .Range("N" & Ligne).Value
specialite = .Range("O" & Ligne).Value
zone = .Range("P" & Ligne).Value
Effectif = .Range("Q" & Ligne).Value
Observations = .Range("R" & Ligne).Value

End With
End Sub

Private Sub UserForm_Click()
Ligne = 0
End Sub


Merci JP pour ta précieuse aide!
 

Discussions similaires

Statistiques des forums

Discussions
312 450
Messages
2 088 510
Membres
103 873
dernier inscrit
Sabin