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 !

Cqgkcqs

XLDnaute Nouveau
Bonjour à tous,

Je viens à vous pour un problème de VBA. Je travaille actuellement sur ma première VBA mais je bloque à un moment.
Dans le fichier joint "Données", vous pouvez-voir une liste de personnes et mon but est de créer de manière automatique l'insertion d'une nouvelle personne.
J'ai donc créer une VBA pour insérer une nouvelle ligne à la suite, mais si je souhaite ajouter une seconde ligne, cela me remet automatiquement sur la première ligne, ce qui est logique.

Comment faire pour descendre d'une ligne à chaque fois que je relance ma VBA ?

Je vous ai joint le fichier "Données1" qui est le travail que j'ai effectué durant 3 longues heures... Ce qui risque d'en faire sourire plus d'un !

Merci d'avance,

Fabien.
 

Pièces jointes

Re : Vba

Bonjour, dans un premier temps, le plus simple est de nous informer du résultat souhaité dans sa globalité et dans un second temps, on vous expliquera comment/quoi faire. Vous avez un userform ? A quoi sert-il ? Le bouton "ok" dessus à quoi sert-il ?

Résultat souhaité dans sa globalité : Insérer une ligne contenant des informations dans plusieurs colonnes à la suite de lignes existantes.
Mon UserForm sert à remplir les colonnes. J'ai créer un "Formulaire" qui indique quel champ remplir.
Le bouton OK du UserForm sert à, une fois la totalité des champs remplis, valider ce "Formulaire" et faire apparaître la nouvelle ligne.

Chaque ligne doit comporter un numéro dans la première colonne. Précédemment, j'avais créer un bouton afin de mettre ce numéro.
J'aimerais à présent inclure cette opération à l'autre.

Est-ce plus clair ?
 
Re : Vba

Bonjour,

Merci JM27 ! C'est plutôt simple en relisant votre codage mais pour un novice comme moi, c'était une tâche plutôt complexe !
Dernière question, toi qui a ouvert mon fichier sera certainement plus apte à la comprendre.

J'ai une cellule "Type" incluant ces 3 possibilités (Apprenant, Intervenant, Administratif) et une cellule "Fonction". J'ai créer un champ dans mon UserForm pour y insérer la "Fonction". (Ex : Directeur). Or si le "Type" est Apprenant, je souhaite voir apparaitre dans la cellule "Fonction" : "-".
Je dois insérer une fonction If si je ne me trompe pas ? Or, je doute de l'endroit..

Merci d'avance.
 

Pièces jointes

Re : Vba

Rebonjour,

C'est exactement ça !
Par contre je dois avouer que je comptais prendre comme exemple cette action afin de la répéter sur les autres cellules, mais je suis complétement perdu.. Promis, ce sera ma dernière question !

Je souhaite renouveler l'opération sur cela :
Si "Type" = Intervenant ou Administratif ALORS "Diplomé" = "-"
Si "Type" = Intervenant ou Administratif ALORS "Groupe" = "-"
Si "Type" = Intervenant ou Administratif ALORS "Niveau" = " "
Si "Type" = Intervenant ou Administratif ALORS "Promo" = "IPI"
Si "Type" = Apprenant ALORS "Tel" = "-" SINON continuer les numéros à la suite
Et enfin
Si "Type" = Intervenant ou Administratif ALORS "Compte" = première lettre "Prénom" et "Nom" entier. Or, j'ai déjà une fonction SI pour le dernier "Type"..
 
Re : Vba

Bonsoir
Les n° de tel ne sont pas numériques das ta base , on ne peut donc pas ajouter 1
sinon le reste est ok a tester

pour info j'ai supprimé les formules dans les nouvelles lignes et les ai intégré à la macro ( mélanger du VBA et des formules dans une base : j'aime pas 😛)
 

Pièces jointes

Dernière modification par un modérateur:
Re : Vba

Bonsoir,

Ok pour les numéros de tel, je corrigerai ça.
J'ai vu les formules supprimées, je me doute que le mélange VBA/Formule de base n'est pas conseillé ! Merci du conseil.

Les colonnes "Anglais" et "Niveau" fonctionnent ensemble, je pensais qu'avec le VBA qui inscrit " " suivant le "Type", la colonne "Niveau" allait s'ajuster.
Est-il possible de faire : Si "Type" = Intervenant ou Administratif ALORS "Anglais" = "-" ?

Et enfin, dans la colonne "Mot de passe", les cellules se suivent en s'ajoutant de 1 à chaque fois. Une formule de base est donc applicable. Or, si "Type" = Intervenant ou Administratif, alors la cellule "Mot de passe" doit être complétée manuellement, sans être numérique. Je me doute que c'est faisable en VBA directement, mais je n'ai réussi qu'en mélangeant Formule de base et VBA..
 
Re : Vba

Merci !
J'ai revu mon UserForm afin qu'il soit plus logique.

Pour la colonne "Messagerie", je ne vois pas la formule "Minuscule". 😕
J'aimerais la colonne "Nom" en Majuscule et la colonne "Prénom" avec la première lettre en Majuscule puis le reste en Minuscule.

Pour la colonne "Messagerie" je fonctionne actuellement avec une formule de base. Prénom + Nom + @........ le tout en Minuscule. Le problème c'est que je suis obligé d'étendre la formule et la partie à droite de @ est toujours visible.
Appliquer cette formule en VBA est certainement plus judicieux que de cacher la fin de la cellule avec une formule de base ?
 
Re : Vba

Bonsoir,

Ça a l'air de fonctionner. Merci.
Concernant les numéros de tel, n'étant pas numériques, je souhaitais insérer un champ supplémentaire "Tel" dans le UserForm afin de l'écrire manuellement.
Est-ce de cette façon ? Cells(Rows.Count, 12).End(xlUp).Offset(1, 0) = TextBox3
Cela risque de compliquer les choses puisqu'un "-" apparaît déjà suivant le "Type".

Et de quelle façon code t-on le fait de prolonger le tableau à chaque nouvelle ligne ?
 
- 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

Discussions similaires

Réponses
5
Affichages
177
Réponses
32
Affichages
987
Réponses
17
Affichages
418
Réponses
2
Affichages
83
Réponses
5
Affichages
272
Retour