[Excel2003-VBA] Création de lignes

Fermé
RussellD Messages postés 57 Date d'inscription jeudi 18 mars 2010 Statut Membre Dernière intervention 6 septembre 2010 - 19 mars 2010 à 11:45
RussellD Messages postés 57 Date d'inscription jeudi 18 mars 2010 Statut Membre Dernière intervention 6 septembre 2010 - 19 mars 2010 à 13:37
Bonjour à tous,

Je conçois actuellement une feuille de calcul, et aimerais la rendre la plus dynamique possible ; c'est à dire j'aimerais qu'elle s'adapte en fonction des données que l'utilisateur rentre dedans. La programmtion de macro en VBA me parait donc indispensable, et je n'en ai qu'une connaissance très limitée...

Je vous expose mon problème : l'utilisateur rentre une valeur dans une cellule (un nombre) ; suite à cela, le même nombre de lignes se crée en dessous, éventuellement colorées. Je voulais donc savoir si quelqu'un avait une idée pour effectuer cela...

Par la suite, il faudrait que la feuille de calcul "demande" a l'utilisateur de nommer ses choix ; s'il a entré le chiffre 3, il donnera 3 noms différents (Arnaud, Victor et Jean-Pierre par exemple...). Ces noms apparaitront ensuite en tête des 3 lignes précedemment créées.
Mais ceci est une toute autre histoire, chaque chose en son temps...

Voila j'espère avoir été assez clair (n'hésitez pas à me demander des précisions). Merci d'avance à ceux qui prendront sur leur temps pour ma question!
A voir également:

3 réponses

tu veux qu'il rentre un nombre, qu'il execute la macro et qu'une fois executer, les colonnes apparaissent !?

Ou que dès le départ, on lui demande un chiffres, et la maccro s'execute tout seul !!
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
19 mars 2010 à 12:16
Bonjour,

Je ne sais pas comment tu comptes déclencher l'ajout des lignes, voilà un exemple que tu peux adapter:

Dim nbLig As Variant
Dim lig As Long
Dim i As Long
Dim rep As Variant


    nbLig = ActiveCell.Value
    If nbLig = Null Or Not IsNumeric(nbLig) Then Exit Sub
    
    lig = ActiveCell.Row + 1
    
    Rows(lig & ":" & lig + (CLng(nbLig) - 1)).Select
    Selection.Insert Shift:=xlDown
    
    For i = 1 To nbLig
        rep = InputBox("Entrer le nom :", "Saisie")
        Range("A" & lig).Value = rep
        lig = lig + 1
    Next


;o)
0
RussellD Messages postés 57 Date d'inscription jeudi 18 mars 2010 Statut Membre Dernière intervention 6 septembre 2010 7
19 mars 2010 à 13:37
Merci beaucoup pour ta réponse Polux31, ta macro donne exactement le résultat que je souhaitais !

Pour répondre à Chico se serait plutot la première hypothèse qui serait retenue (l'utilisateur rentre le nombre et execute la macro ensuite, à l'aide d'un bouton de commande par exemple). Je vais essayer de faire ça.

En tout cas merci encore Polux, ça fait quelques heures que je cherchais ça et tu me le sors en 10 minutes (j'ai des progrès à faire^^).
0