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

En fait, j'ai une erreur, tout marche presque niquel !
Le code est bon, mais il n'associe pas les modifications à la bonne ligne, donc au bon nom ! Feuilles touchées : emargements_amicale, publipostage-actifs.

Merci, voici le code :

Code:
Sub modifactif(grade, datee, adresse, cp, ville, telfixe, telpro, telport, mail)
'modification de la feuille effectif_actifs
Sheets("effectif_actifs").Activate
With UserForm3.ComboBox1
    If .ListIndex <> -1 Then
        Cells(.ListIndex + 5, 3).Value = grade
        Cells(.ListIndex + 5, 4).Value = datee
        Cells(.ListIndex + 5, 5).Value = adresse
        Cells(.ListIndex + 5, 6).Value = cp
        Cells(.ListIndex + 5, 7).Value = ville
        Cells(.ListIndex + 5, 9).Value = telfixe
        Cells(.ListIndex + 5, 11).Value = telpro
        Cells(.ListIndex + 5, 10).Value = telport
        Cells(.ListIndex + 5, 12).Value = mail
    End If
End With

'modification de la feuille effectif_amicale
Sheets("effectif_amicale").Activate
With UserForm3.ComboBox1
    If .ListIndex <> -1 Then
        Cells(.ListIndex + 5, 3).Value = grade
        Cells(.ListIndex + 5, 4).Value = datee
        Cells(.ListIndex + 5, 5).Value = adresse
        Cells(.ListIndex + 5, 6).Value = cp
        Cells(.ListIndex + 5, 7).Value = ville
        Cells(.ListIndex + 5, 9).Value = telfixe
        Cells(.ListIndex + 5, 11).Value = telpro
        Cells(.ListIndex + 5, 10).Value = telport
    End If
End With

'modification de la feuille manifestation
Sheets("manifestation").Activate
With UserForm3.ComboBox1
    If .ListIndex <> -1 Then
        Cells(.ListIndex + 11, 3).Value = grade
        Cells(.ListIndex + 11, 5).Value = telfixe
        Cells(.ListIndex + 11, 6).Value = telpro
        Cells(.ListIndex + 11, 7).Value = telport
    End If
End With

'modification de la feuille emargements
Sheets("emargements").Activate
With UserForm3.ComboBox1
    If .ListIndex <> -1 Then
        Cells(.ListIndex + 6, 3).Value = grade
    End If
End With

'modification de la feuille emargements_amicale
Sheets("emargements_amicale").Activate
With UserForm3.ComboBox1
    If .ListIndex <> -1 Then
        Cells(.ListIndex + 6, 3).Value = grade
    End If
End With

'modification de la feuille vacances
Sheets("vacances").Activate
With UserForm3.ComboBox1
    If .ListIndex <> -1 Then
        Cells(.ListIndex + 5, 3).Value = grade
    End If
End With

'modification de la feuille publipostage-actifs
Sheets("publipostage-actifs").Activate
With UserForm3.ComboBox1
    If .ListIndex <> -1 Then
        Cells(.ListIndex + 2, 2).Value = grade
        Cells(.ListIndex + 2, 3).Value = datee
        Cells(.ListIndex + 2, 4).Value = adresse
        Cells(.ListIndex + 2, 5).Value = cp
        Cells(.ListIndex + 2, 6).Value = ville
    End If
End With
End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : VBA : Importer ligne dans un userform

Re,

en l'état, si 1er élément choisit dans la combo, c'est la ligne 5 colonne C de la feuille active qui va être impactée par cette valeur....
Code:
Cells(.ListIndex + 5, 3).Value = grade
A voir ce que contiennent tes différents arguments... si les valeurs ont bien été passées en paramètres... sans plus de détails difficile d'en dire plus....
 

J0K0

XLDnaute Nouveau
Re : VBA : Importer ligne dans un userform

En fait, dans la feuille emargements_amicale il y a d'autres noms qui se rajoutes ... Il se met bien à la mm ligne (27ème), donc à la mauvaise personne ! et par contre, je ne pige pas pour publipostage-actifs, les noms sont les mm .. mais c'est quand mm la mauvaise personne qui a les infos (ligne +2) .... GRRRRR !
 

J0K0

XLDnaute Nouveau
Re : VBA : Importer ligne dans un userform

Re,

en l'état, si 1er élément choisit dans la combo, c'est la ligne 5 colonne C de la feuille active qui va être impactée par cette valeur....
Code:
Cells(.ListIndex + 5, 3).Value = grade
A voir ce que contiennent tes différents arguments... si les valeurs ont bien été passées en paramètres... sans plus de détails difficile d'en dire plus....

En fait, la liste des noms commences à la ligne 5, valeur à changer colonne C avec la valeur de grade. Si le nom choisi se trouve à la ligne 25 (dans mon cas) il va mettre la valeur à la colonne C mais à la ligne de la feuille précédente (emargements) qui commence aussi à la ligne 5 mais où le nom se trouve à la ligne 22 ...
 

J0K0

XLDnaute Nouveau
Re : VBA : Importer ligne dans un userform

Re,

tu n'as pas de cellules fusionnées par hasard...

si si si si .... dans toutes les feuilles sauf publipostage-actifs.
j'ai modifié déjà cette partie (ligne 1 concernée) qui premier de la colonne A à ..... G par exemple, sur les autres feuilles ça marche ... malgré les fusions .... je ne pense pas que ça viendrais de ça ! (ou bien ?? :D)
 

Pierrot93

XLDnaute Barbatruc
Re : VBA : Importer ligne dans un userform

Re,

En fait, la liste des noms commences à la ligne 5, valeur à changer colonne C avec la valeur de grade. Si le nom choisi se trouve à la ligne 25 (dans mon cas) il va mettre la valeur à la colonne C mais à la ligne de la feuille précédente (emargements) qui commence aussi à la ligne 5 mais où le nom se trouve à la ligne 22 ...
oh la la... comprends plus rien moi..

le "listindex" te permet de situer un nom choisit dans ta combo qui est déjà présent sur ta feuille, et à partir de ce nom renvoyer certaines valeurs dans les colonnes de cette même ligne.... met peut être un tout petit fichier en pièce jointe, représentant uniquement le problème posé et le résultat attendu....
 

J0K0

XLDnaute Nouveau
Re : VBA : Importer ligne dans un userform

Je pense qu'il ne faudrait pas compter les lignes, mais faire le lien de la valeur de la combobox1 à la ligne correspondant de la colonne B (la liste des noms -> colonne A = comptage du personnel) ...
 

J0K0

XLDnaute Nouveau
Re : VBA : Importer ligne dans un userform

Re,


oh la la... comprends plus rien moi..

le "listindex" te permet de situer un nom choisit dans ta combo qui est déjà présent sur ta feuille, et à partir de ce nom renvoyer certaines valeurs dans les colonnes de cette même ligne.... met peut être un tout petit fichier en pièce jointe, représentant uniquement le problème posé et le résultat attendu....

euh ouais attends je vais te bidouiller un fichier ... le soucis c'est les numéro et tout le reste comme l'avais souligné un membre au début ....
 

J0K0

XLDnaute Nouveau
Re : VBA : Importer ligne dans un userform

C'est simple, vas sur la feuille effectif_actifs, clic sur le bouton "modifier actif", cherche un nom, modifie des lignes dans l'userform, quand c'est fini tu clic sur annuler, puis tu regardes le résultats dans les feuilles, tu verras déjà l'erreur ! ;)

Merci de t'arrêter sur mon cas !
 

Discussions similaires

Statistiques des forums

Discussions
312 671
Messages
2 090 764
Membres
104 658
dernier inscrit
amomo