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

VBA : Importer ligne dans un userform

  • Initiateur de la discussion Initiateur de la discussion J0K0
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

J0K0

Guest
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 !
 
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
 
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....
 
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 !
 
Re : VBA : Importer ligne dans un userform


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 ...
 
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 ?? 😀)
 
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....
 
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) ...
 
Re : VBA : Importer ligne dans un userform


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 ....
 
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 !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
879
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…