Lier plusieurs cellules entre elles

thibaut1313 Messages postés 21 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 24 août 2011 - 9 juin 2010 à 23:16
thibaut1313 Messages postés 21 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 24 août 2011 - 11 juin 2010 à 10:32
Bonjour,

J'essai de créer un petit programme de gestion de commande et de facture pour mon utilisation personnel. Je crée ce logiciel en utilisant VBA.
Je voudrais savoir comment faire pour quand je sélectionne un objet dans une liste box les cellules qui sont sur la même ligne soient prise en compte pour qu'elles s'inscrivent automatiquement dans différentes cellules dans une autre feuille excel. Je précise que j'ai créé un bouton enregistrer dans un userform et que c'est en cliquant dessus que je doit récupérer les informations et les inscrire dans différentes cellules.

Exemple: j'aimerai sélectionner le numéro d'une commande et que toute les infos qui se rapporte a cette commande se mettent sur une autre feuille excel.

Merci d'avance de votre.
Cordialement

8 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
10 juin 2010 à 01:05
Salut
On suppose que tu as déjà fait la recherche de l'item sélectionné dans ta ListBox parmi les cellules et que ActiveCell désigne la cellule trouvée.
Dans ce cas, la cellule à droite de la cellule active est accessible par
ActiveCell.Offset(0, 1).Value
La cellule deux colonnes plus loin est
ActiveCell.Offset(0, 2).Value
etc ...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
thibaut1313 Messages postés 21 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 24 août 2011
10 juin 2010 à 09:51
merci de ton t'aide cependant un problème persiste.
Lorsque mon userform apparait je remplis les cases nécessaires et je sélectionne une valeur dans mes listbox ensuite je clic sur le bouton enregistrer dans lequel j'ai marqué une ligne de code pour que dans une cellule précise s'inscrive mon information mais sa ne fonctionne pas. Voici mon code car en faite je ne sais pas ni ou ni quand écrire ta ligne de code car je en sais pas quand la cellule est "active":

'Enregistre dans la feuille professeurs, les informations saisies par l'utilisateur
Cells(i, 1).Value = numero_commande.Value
Cells(i, 2).Value = list_code.Value
Cells(i, 6).Value = ActiveCell.Offset(0, 1).Value
Cells(i, 3).Value = montant.Value
Cells(i, 4).Value = list_fournisseur.Value
Cells(i, 5).Value = case_date.Value
Cells(i, 7).Value = case_livraison.Value

Merci d'avance
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
10 juin 2010 à 10:23
Ce que je voulais te montrer, c'est Offset
Offset s'applique à Cells aussi bien qu'à Range
A toi de voir comment l'utiliser.
Ce que tu veux mettre dans ta cellule 'i, 6' vient d'où ?

"quand je sélectionne un objet dans une liste box les cellules qui sont sur la même ligne"
Cela me laisse supposé que toi tu connais cette 'même ligne'
thibaut1313 Messages postés 21 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 24 août 2011
10 juin 2010 à 10:28
En fait sur une autre feuille excel j'ai créer une genre de BDD de deux colonnes une avec un code propre a mon entreprise et dans l'autre un descriptif de ce que signifie ce code. Moi ce que je veux c'est que lorsque je choisie un code dans ma liste box je veux quand cliquant sur le bouton enregistrer le code sélectionné s'inscrive dans une cellule et que le descriptif associé dans ma BDD s'inscrive dans une autre.

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
10 juin 2010 à 11:39
Ca, ça explique ce que tu veux faire et pas ton problème.
Ton problème est-il :
"Retrouver la ligne correspond à l'Item sélectionné dans une ListBox" ?

Rappelle toi qu'on ne sait pas ce que tu as sous les yeux.
Ta ListBox, tu l'as alimentée comment ?
A quelle colonne se réfèrent les éléments de cette ListBox ?

Ton problème de remplissage ne sera à résoudre que lorsque tu auras été en mesure de retrouver la ligne, Offset te permettant ensuite d'aller chercher une cellule adjacente.
Un problème à la fois.
thibaut1313 Messages postés 21 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 24 août 2011
10 juin 2010 à 17:40
Tu as parfaitement raison donc comment fait-on pour retrouver l'objet que j'ai sélectionné dans ma liste box?
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
10 juin 2010 à 19:30
Tu sais le faire à la main, non ?
Tu slectionnes ta colonne et tu appuies sur Ctrl-F (ou menu Edition-Rechercher)
Et bien tu fais une recherche bidon à la main pendant que tu enregistres une macro et tu auras le code tout fait !
Il ne te restera qu'à remplacer le texte bidon de ta recherche manuelle par le texte sélectionné de ta liste et, une fois la cellule recherchée trouvée, lui demander sa ligne (.Row) pour pouvoir ensuite travailler avec Cells et Offset
thibaut1313 Messages postés 21 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 24 août 2011
11 juin 2010 à 10:32
J'arrive a retrouver ma commande maintenant ce que je voudrais savoir c'est comment activer cette cellule pour pouvoir utiliser Offset et donc copier toutes les informations dont j'ai besoin.
Rejoignez-nous