VBA : Importer ligne dans un userform

J0K0

XLDnaute Nouveau
Bonsoir à tous,

Je vous expose mon soucis :

J'ai un tableau regroupant toutes les informations de gens ... Il m'arrive de temps en temps de modifier ces informations. Ces informations sont retransmises dans plusieurs feuilles concernant ces personnes.
J'ai créé un userform où je peux choisir la personne à modifier avec une combobox, jusqu'à pas de soucis.
J'ai copié l'userform pour ajouter une personne et ces infos pour le transformer en modification, cependant je n'arrive pas à importer les infos concernant la personne choisie dans cet userform ...

Le code actuel ne marche pas bien, si je choisi nom1, dans un premier temps rien ne s'affice, si je choisis ensuite nom2, j'ai ensuite nom1 qui s'affiche ... etc etc ...
LA galère ..

Le but final est en fait de choisir le nom à choisir, et d'importer toutes les infos le concernant ... Je ne sais pas comment faire ...

Merci de votre aide !
 

J0K0

XLDnaute Nouveau
Re : VBA : Importer ligne dans un userform

je n'y avais pas pensé ... merci !

une idée cependant pour le problème ? je pensais dans Private Sub UserForm_Initialize() donner une valeur sur la ligne concernée :
exemple nom1 donc ligne concernée : tel1 colonne 2, port1 colonne 3, prof1 colonne 4 .......... etc

Je ne sais pas comment m'y prendre par contre ..
 

Pierrot93

XLDnaute Barbatruc
Re : VBA : Importer ligne dans un userform

Bonjour,

sans voir comment est structurée ta base difficile à dire, regarde ceci, suppose que les données commencent à partir de la ligne 2, tes choix possibles dans le combo en colonne 1, ramène les valeurs des colonnes 2,3,4 et 5 positionnées sur la même ligne...

Code:
Option Explicit
Private Sub ComboBox1_Click()
With ComboBox1
    If .ListIndex <> -1 Then
        TextBox1 = Cells(.ListIndex + 2, 2)
        TextBox2 = Cells(.ListIndex + 2, 3)
        TextBox3 = Cells(.ListIndex + 2, 4)
        TextBox4 = Cells(.ListIndex + 2, 5)
    End If
End With
End Sub

bonne journée
@+
 

J0K0

XLDnaute Nouveau
Re : VBA : Importer ligne dans un userform

Salut Pierrot !

Merci pour ce commencement .... en effet, on va essayé d'être plus explicite ...
J'ai plusieurs feuilles, cependant une seule ne m'intéresse, les modifications apportées seront par contre mises à jour sur toutes les feuilles que je choisirais .... Mais j'essaye déjà de me concentrer sur une seule feuille soit la feuille effectif_actifs. Dans cette feuille, je retrouve la liste du personnel de la ligne 5 à la ligne 32 (actuellement ... si mise à jour elle augmente ou diminue), ensuite dans les colonnes on retrouve toutes les infos correspondant aux gens, adresse, code postal, tel perso, tel portable, tel professionnel, mail, etc etc ...
J'ai donc créer l'userform4 avec un combobox qui recherche les noms de la feuille ... ça ça marche, après avec un commandbutton "modifier" j'aurais voulu ouvrir l'userform3 pour retrouver toutes les infos correspondantes ... c'est là que déjà je n'y arrive pas ...
Je vais regarder ton code et tenter de le rapatriller chez moi ;)
Merci encore
 

J0K0

XLDnaute Nouveau
Re : VBA : Importer ligne dans un userform

Pierrot, tu es juste fantastique !
L'importation a marcher du tonnerre !!!!
Quelques petits trucs quand mm :
- "Option Explicit" : c'est quoi ? si je le mets avant le sub combobox1_click il me fait une erreur disant que seul les commentaires sont présents après End sub ... si je le mets après le sub combobox1_click il me fait une autre erreur en disant qu'il faut utiliser dim/as ... Bon je n'ai pas tout pigé en fait..
- j'ai modifié la façon de faire : j'ai mis directement le combobox dans le userform3, c'est plus simple je pense ...
Je vais faire l'intégralité du code et le retransmet ici ... Je verrais ensuite comment "modifier" ces informations sur les feuilles voulues ..

Encore merci !
 

J0K0

XLDnaute Nouveau
Re : VBA : Importer ligne dans un userform

Voici mon code :
Code:
'Option Explicit
Private Sub ComboBox1_Click()
With ComboBox1
    If .ListIndex <> -1 Then
        TextBox2 = Cells(.ListIndex + 5, 3)
        TextBox3 = Cells(.ListIndex + 5, 4)
        TextBox4 = Cells(.ListIndex + 5, 5)
        TextBox5 = Cells(.ListIndex + 5, 6)
        TextBox6 = Cells(.ListIndex + 5, 7)
        TextBox7 = Cells(.ListIndex + 5, 9)
        TextBox8 = Cells(.ListIndex + 5, 11)
        TextBox9 = Cells(.ListIndex + 5, 10)
        TextBox10 = Cells(.ListIndex + 5, 12)
    End If
End With
End Sub

Voilà, ça marche niquel, merci Pierrot, maintenant, il faut s'attaquer au bouton modifier : (ce que je pense)
Code:
Private Sub CommandButton1_Click()
Call modifactif(ComboBox1.Value, TextBox2.Value, TextBox3.Value, TextBox4.Value, TextBox5.Value, _
TextBox6.Value, TextBox7.Value, TextBox8.Value, TextBox9.Value, TextBox10.Value)
End Sub

Par contre, dans cette macro, il faut que je fasse le lien avec le nom ... je pensais à quelque chose du genre que tu m'as donné avec with combobox1 et .listindex ...

Une idée ?

Encore merci !!!!!!
 

Pierrot93

XLDnaute Barbatruc
Re : VBA : Importer ligne dans un userform

Re,

"Option Explicit" : c'est quoi ? si je le mets avant le sub combobox1_click il me fait une erreur disant que seul les commentaires sont présents après End sub ... si je le mets après le sub combobox1_click il me fait une autre erreur en disant qu'il faut utiliser dim/as ... Bon je n'ai pas tout pigé en fait..

"Option Explicit" doit être positionné sur la première ligne du module sur lequel il est placé... oblige à ce que toutes les variables soient déclarées, cela évite bien des erreurs...

bon après midi
@+
 

J0K0

XLDnaute Nouveau
Re : VBA : Importer ligne dans un userform

Le début de code de la macro de modification :

Code:
Sub modifactif(nom, datee, grade, adresse, cp, ville, telfixe, telpro, telport, mail)
Sheets("effectif_actifs").Activate

End Sub

là je sèche ! merci !!
 
Dernière édition:

J0K0

XLDnaute Nouveau
Re : VBA : Importer ligne dans un userform

Re,

De quel nom tu parles ? si "modifactif" est dans un autre module que l'usf, sans doute lui passer ler nom de l'usf :
Code:
modifactif(Userform1.ComboBox1.Value,Userform1.TextBox2.Value

Soit je m'embrouille, soit je ne te comprends pas ...
Faire le lien du nom choisi dans la combobox et qu'il utilise la ligne correspondant au nom ....
 

J0K0

XLDnaute Nouveau
Re : VBA : Importer ligne dans un userform

C'est bon, j'y suis arrivé !!! Enfin ça marche avec ta construction de départ !!
Je vais monter le code complet en utilisant les modifications pour toutes les feuilles.

Pierrot, Président ! :D

Code:
Sub modifactif(nom, datee, grade, adresse, cp, ville, telfixe, telpro, telport, mail)
Sheets("effectif_actifs").Activate
With UserForm3.ComboBox1
    If .ListIndex <> -1 Then
        Cells(.ListIndex + 5, 3).Value = datee
        Cells(.ListIndex + 5, 4).Value = grade
    End If
End With
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 864
Messages
2 093 013
Membres
105 603
dernier inscrit
Tipou