[Excel2003-VBA] Création de lignes

RussellD Messages postés 57 Date d'inscription   Statut Membre Dernière intervention   -  
RussellD Messages postés 57 Date d'inscription   Statut Membre Dernière intervention   -
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

chico95
 
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   Statut Membre Dernière intervention   1 204
 
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   Statut Membre Dernière intervention   7
 
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