Ajout de données

Bonjour, dans ce post plusieurs questions à vous poser :

Premièrement :

Je dispose d'une liste, qui va de B3 à B....

- J'ai créer un bouton qui appelle une InputBox, une fois arrivé on entre le nom et la liste de la colonne B l'ajoute et reclasse le tout par ordre alphabétique

Jusque là tout va bien puisque je peux ajouter dans une liste ce que je veux à l'aide d'un simple bouton,

Problème :

Si jamais je veux supprimer un élément de la liste, par exemple en B6, au lieu de devoir à la main remonter tout le reste de la colonne pour ne pas avoir d'espace blanc, est-il possible d'automatiser cela ?

Attention :

Je ne peux pas supprimer une ligne vide car d'autres colonnes contiennent d'autres valeurs, ce qui engendrerai des pertes....

Fichier joint :

fichier.xls

Deuxièmement (plus dur) :

Je dispose d'une autre liste, qui va de C3 à C...

Celle là n'est pas du tout classé par ordre croissant, en fait elle ne respecte aucune règle de classement puisque c'est moi qui l'établit...

- Idem j'ai créer un bouton pour ajouter quelque chose à la liste, ce quelque chose s'affiche tout en bas de la liste

Problème :

Il se peut que j'ai envie de mettre ce dernier ajout, en 3ème position, pour cela je devrais décaler toute la colonne à partir de la 3ème position puis copier ce quelque chose pour enfin le coller à la 3ème position, ce qui est lent...

J'aimerais donc automatiser ça et j'ai pensé à l'utilisation d'une userform, qui demanderait le nom de la donnée à ajouter, avec en dessous (dans une ListBox ?) la liste déjà présente dans la colonne d'Excel, et à l'aide d'un bouton "toupie" on peut déplacer la donnée qu'on à ajouter à l'intérieur de la liste, et finalement on valide le tout.

Question :

Est-ce réalisable ou laborieux ?

Voyez-vous une autre idée pour pouvoir choisir la place de ce nouvel ajout ?

Si c'est réalisable, je créerai l'userform avec la récupération des données et la toupie, mais mon problème sera le déplacement du nouvel ajout dans la liste.

Fichier joint (le même que le premier):

fichier.xls

Je vous remercie d'avance pour votre réponse (oula la formule officielle )

Pour ta première question, quand tu effaces une données, pourquoi ne refais-tu pas simplement un classement par ordre alphabétique comme tu le fais quand tu ajoutes un nom?

Ce n'est pas une mauvaise idée, j'y ai d'ailleurs pensé mais comment activé une macro automatiquement lorsque je supprime une cellule ?

Je voudrais vraiment que ce soit automatique, une fois que j'ai supprimer une cellule je ne veux pas avoir à recliquer sur bouton pour refaire un tri.

Merci à toi

Il y a sûrement mieux mais pour l'instant, tu peux t'amuser un peu avec ça :

Private Sub worksheet_change(ByVal Target As Range)

With Sheets("sheet1")

.Activate

.Range("C1:N" & [C65536].End(3).Row).Sort Key1:=Range("C1"), Order1:=xlAscending, _

Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _

DataOption1:=xlSortNormal

End With

End Sub

Évidemment, tu dois l'ajuster à ton fichier en identifiant la feuille et la colonne correctement.

Bonjour, merci de ta réponse,

Je viens de le tester et il me prends une bonne vingtaine des premières lignes et les places à la lignes 30 (et quelques...), tu l'as testé chez toi ?

bonjour à tous,

ton fichier en retour

https://www.excel-pratique.com/~files/doc/claude_fichier2.xls

regarde si çà te vas

amicalement

Claude.

Salut,

Mon fichier, beacoup moins élégant que celui de Dubois et sans doute moins performant, mais je le mets qd même...

Il correspond à la question 2

fichier pour Hadidman

Souri84

Bien sûr Hadidman que je l'ai testé avant de te l'envoyer et ça fonctionne très bien chez moi mais comme je te l'ai dit, il y avait sûrement mieux comme code. Et maintenant que dubois est passé, tu auras quelque chose qui fonctionne plus efficacement.

Dubois :

This is so perfect

C'est exactement ce que je voulais MERCI, MERCI beaucoup !!

Souri84 :

C'est vrai que ce que tu as fait est aussi une très bonne idée

Et je vais d'ailleurs surement prendre ta méthode parce que c'est plus ce qui correspond à ce que j'ai besoin (parce qu'inverser des cellules c'est bien, mais il se peut que l'on est à en inverser 300 avant d'arriver au résultat)

Donc, UN GRAND MERCI A VOUS DEUX !!

EricF a écrit :

Bien sûr Hadidman que je l'ai testé avant de te l'envoyer et ça fonctionne très bien chez moi mais comme je te l'ai dit, il y avait sûrement mieux comme code. Et maintenant que dubois est passé, tu auras quelque chose qui fonctionne plus efficacement.

Merci de ta réponse, mais je comprends toujours pas pourquoi le code à foiré, en effet la colonne C est la bonne, et j'ai bien remplacer le nom du classeur à la place de sheet1

Désolé pour le triple poste j'ai trouvé une réponse à ma question

Merci encore

Rechercher des sujets similaires à "ajout donnees"