Comment coller des infos selon un nombre d'une msgbox

  • Initiateur de la discussion Initiateur de la discussion zbig
  • Date de début Date de début

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 !

zbig

XLDnaute Occasionnel
Bonjour
dans le fichier il y a 2 feuille

une feuille paramètre
une freuille série

A partir d'un bouton macro je souhaiterais que le pupitreur donne le nombre de lignes à créer
et que la macro insére les infos à partir de la cellule A2.

Ex si n= 2 alors 2 lignes (+ celle des champs) de crées
si 3, alors 3
etc....

la feuille paramètre montre ce qui doit apparaitre mais sera supprimée

merci
Zbig

merci
Zbig
 

Pièces jointes

Re : Comment coller des infos selon un nombre d'une msgbox

Bonjour,

Cela se rapproche du dossier Téléthon 2010 ... le nombre de concurrents est en D9 ... et la macro insère déjà le nombre de lignes ...

A +
 

Pièces jointes

Re : Comment coller des infos selon un nombre d'une msgbox

Bonjour à vosu 2

merci etienne c'est ça
merci pour ta réponse

James, oui exact!
je continue dans ce projet mais je n'avais plus de news
alors je pose des questions simple
step by step
si cela t interesse.
merci pour ton aide,

Zbig
 
Re : Comment coller des infos selon un nombre d'une msgbox

Je dois être bête,
JAmes avait répondu précédemment!

mais il ya 2 problèmes dans le stockage dans historique

1/lors du stockage dans historique (vider série)
la ligne 1 passe à 0
la 2 à 1
la 3 à 4
la 4 à 3

2/si on crée une ou des nouvelles séries,
il y a des ligne anciennes éffacées par les nouvelles
et un décalage de n° se réalise

pouvez vous voir ces problèmes?
merci
Zbig


merci
Zbig
 
Dernière édition:
Re : Comment coller des infos selon un nombre d'une msgbox

Bonjour Etienne

Pourrais tu me mettre les commentaires dans ta macro pour que je comprenne le cheminement,

------ la macro------
Sub CreerSeries_nonStandart()
Dim Message, Title, Default
Dim r As Integer

Application.ScreenUpdating = False

Sheets("série").Select
DL = Cells(65536, 2).End(xlUp).Row
If DL > 2 Then Range(Cells(2, 1), Cells(DL, 1)).EntireRow.Delete

Message = "Combien de concurents au départ ...?"
Title = "Nombre de concurrents dans la série?"
Default = "1"
r = InputBox(Message, Title, Default)
'si la réponse est >0 concurrent
If r > 0 Then
'sélectionner la feuille parametre
Sheets("parametre").Select
'selectionner- et copier les cellules A3:N4
Range(Cells(3, 1), Cells(4, 14)).Copy
'sélectionner la feuille Serie
Sheets("série").Select
' selectionner la cellule(a2
Cells(2, 1).Select
'
ActiveSheet.Paste
'
Application.CutCopyMode = False
End If
'si r>1 concurent alors
If r > 1 Then
'copier a3:n3
Range(Cells(3, 1), Cells(3, 14)).Copy
'selectionner a4:a(2+r)
Range(Cells(4, 1), Cells(2 + r, 1)).Select
'
ActiveSheet.Paste
'
Application.CutCopyMode = False
End If

'pour i (ligne)=4 à r-2
For i = 4 To 4 + r - 2
'la valeur de la cellule(Bi)= i-2
Cells(i, 2).Value = i - 2
Next i
'aller à la cellule a1
Application.Goto Range("A1"), True

End Sub


End Sub


merci
Zbig
 
Dernière édition:
Re : Comment coller des infos selon un nombre d'une msgbox

Salut Zbig, le fil,
et bien, il semblerait que quelqu'un ait fait une grosse partie du boulot avant moi.

Voici le code avec quelques petits ajouts de commentaires.

VB:
Sub CreerSeries_nonStandart()
Dim Message, Title, Default
Dim r As Integer

Application.ScreenUpdating = False

Sheets("série").Select 'Sélectionne la feuille "série"
DL = Cells(65536, 2).End(xlUp).Row 'On va trouver la dernière ligne utilisée de la colonne B
'Si le numéro de la ligne est plus grand que 2, alors on va supprimer la ligne
If DL > 2 Then Range(Cells(2, 1), Cells(DL, 1)).EntireRow.Delete

'Les informations requises au imputbox
Message = "Combien de concurents au départ ...?"
Title = "Nombre de concurrents dans la série?"
Default = "1"

'L'affichage du imputbox
r = InputBox(Message, Title, Default)
'Si l'utilisateur saisi un chiffre plus grand que 0 alors on continu, sinon on sort
If r > 0 Then
    Sheets("parametre").Select 'sélectionner la feuille parametre
    'Dans l'onglet paramètres, on va aller copier les entêtes ainsi que la première ligne
    'contenant de l'information. On veut principalement récupérer les formats
    Range(Cells(3, 1), Cells(4, 14)).Copy
    
    Sheets("série").Select 'Sélectionne la feuille "série"
    
    Cells(2, 1).Select 'On va sélectionner la cellule A2
    ActiveSheet.Paste
    Application.CutCopyMode = False 'Sort du mode collage
Else
    Exit Sub 'Si le nombre est inférieur à 0, alors on sort de la macro
End If

If r > 1 Then 'Si le nombre saisi par l'utilisateur est plus grand que 1, alors
    Range(Cells(3, 1), Cells(3, 14)).Copy 'On va copier la ligne après les entêtes
    Range(Cells(4, 1), Cells(2 + r, 1)).Select 'On va sélectionner notre range de collage, soit a4:a(2+r)
    ActiveSheet.Paste 'Colle notre information
    Application.CutCopyMode = False 'Sort du mode collage
End If


For i = 4 To 4 + r - 2 'pour i (qui représente ici les lignes) =4 à r-2
    Cells(i, 2).Value = i - 2 'la valeur de la cellule(Bi)= i-2
Next i 'Prochain i

Application.Goto Range("A1"), True 'aller à la cellule a1

End Sub

Au plaisir,

Étienne
 
Re : Comment coller des infos selon un nombre d'une msgbox

Bonsoir

Merci pour ta réponse

j'avais commencé à mettre ce que je comprenais.

J'ai créer une sub vider_feuille_serie()

comment l'intégrer au début de ta macro?

as tu vu la 2e discussionmise en ligne sur ce forum?

merci
Zbig
 
- 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

S
Réponses
6
Affichages
2 K
simsinaty
S
D
Réponses
4
Affichages
727
P
Réponses
4
Affichages
940
P
G
Réponses
7
Affichages
1 K
gfgghbhg
G
Retour