Je me permets de relancer le sujet, avec en copie la réponse de PMO.
En executant le code qu'il m'a envoyé, il n'y a rien qui se passe. Aucune
insertion de lignes qui se fait. J'ai passé une partie de ma soirée à voir
ou cela pouvait "merder" mais je n'ai pas tout compris :-)
Merci d'avance si vous pouviez me dépatouiller.
PB :
J'ai un classeur avec 2 onglets ayant chacun un tableau commençant en A4 et
finissant en P? (longueur variable en fonction des onglets).
2 lignes en dessous de la fin de ces tableaux, j'ai un petit tableau
récapitulatif sur 4 colonnes.
Je voudrais pouvoir insérer à partir de la derniere ligne de mon 1er tableau
un nombre de lignes que j'aurais défini dans une cellule sur mon onglet
"page de garde" et ces lignes que je voudrais insérer doivent reprendre les
formules du tableau au dessus.
Ex : sur l'onglet1, mon tableau va de A4 à P20.
Dans Page de Garde, en A5 je rentre 5
Et en cliquant sur mon bouton, mon tableau sur l'onglet A1 se vois rajouter
5 nouvelles lignes, copie de la ligne 20 (mais juste les formules).
Réponse de PMO (merci pour votre aide) :
1) La procédure suivante est à copier dans votre bouton
'**********
Private Sub CommandButton1_Click()
If Not IsNumeric([a5]) Then
MsgBox "La cellule A5 n'est pas un nombre"
Exit Sub
End If
Call PMO_AjoutLigne(CLng([a5]))
End Sub
'**********
2) Copiez la procédure suivante dans un module standard
et adaptez le nom "Feuil1" dans la ligne
Set S = Sheets("Feuil1")
avec le nom de la feuille où figure votre tableau.
'**********
Sub PMO_AjoutLigne(x As Long)
Dim S As Worksheet
Dim R As Range
Dim C As Range
Dim last&
if x>50 then exit sub 'limitation à 50
Set S = Sheets("Feuil1")
Set R = S.[a4].CurrentRegion
last& = R.Rows.Count + 3
For i& = 1 To x
S.Rows(last& + 1).Insert Shift:=xlDown
Next i&
S.Select
Set R = S.Range(Cells(last&, 1), _
Cells(last&, R.Columns.Count))
For Each C In R
If C.HasFormula Then
C.AutoFill _
Destination:=Range(C.Resize(x + 1, 1).Address)
End If
Next C
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
PMO
Bonjour,
J'ai répondu dans votre fil précédent.
Cordialement. -- PMO Patrick Morange
Bonjour à toutes et à tous,
Je me permets de relancer le sujet, avec en copie la réponse de PMO. En executant le code qu'il m'a envoyé, il n'y a rien qui se passe. Aucune insertion de lignes qui se fait. J'ai passé une partie de ma soirée à voir ou cela pouvait "merder" mais je n'ai pas tout compris :-) Merci d'avance si vous pouviez me dépatouiller.
PB : J'ai un classeur avec 2 onglets ayant chacun un tableau commençant en A4 et finissant en P? (longueur variable en fonction des onglets). 2 lignes en dessous de la fin de ces tableaux, j'ai un petit tableau récapitulatif sur 4 colonnes.
Je voudrais pouvoir insérer à partir de la derniere ligne de mon 1er tableau un nombre de lignes que j'aurais défini dans une cellule sur mon onglet "page de garde" et ces lignes que je voudrais insérer doivent reprendre les formules du tableau au dessus.
Ex : sur l'onglet1, mon tableau va de A4 à P20. Dans Page de Garde, en A5 je rentre 5 Et en cliquant sur mon bouton, mon tableau sur l'onglet A1 se vois rajouter 5 nouvelles lignes, copie de la ligne 20 (mais juste les formules).
Réponse de PMO (merci pour votre aide) : 1) La procédure suivante est à copier dans votre bouton '********** Private Sub CommandButton1_Click() If Not IsNumeric([a5]) Then MsgBox "La cellule A5 n'est pas un nombre" Exit Sub End If Call PMO_AjoutLigne(CLng([a5])) End Sub '**********
2) Copiez la procédure suivante dans un module standard et adaptez le nom "Feuil1" dans la ligne Set S = Sheets("Feuil1") avec le nom de la feuille où figure votre tableau. '********** Sub PMO_AjoutLigne(x As Long) Dim S As Worksheet Dim R As Range Dim C As Range Dim last& if x>50 then exit sub 'limitation à 50 Set S = Sheets("Feuil1") Set R = S.[a4].CurrentRegion last& = R.Rows.Count + 3 For i& = 1 To x S.Rows(last& + 1).Insert Shift:=xlDown Next i& S.Select Set R = S.Range(Cells(last&, 1), _ Cells(last&, R.Columns.Count)) For Each C In R If C.HasFormula Then C.AutoFill _ Destination:=Range(C.Resize(x + 1, 1).Address) End If Next C End Sub
Bonjour,
J'ai répondu dans votre fil précédent.
Cordialement.
--
PMO
Patrick Morange
Bonjour à toutes et à tous,
Je me permets de relancer le sujet, avec en copie la réponse de PMO.
En executant le code qu'il m'a envoyé, il n'y a rien qui se passe. Aucune
insertion de lignes qui se fait. J'ai passé une partie de ma soirée à voir
ou cela pouvait "merder" mais je n'ai pas tout compris :-)
Merci d'avance si vous pouviez me dépatouiller.
PB :
J'ai un classeur avec 2 onglets ayant chacun un tableau commençant en A4 et
finissant en P? (longueur variable en fonction des onglets).
2 lignes en dessous de la fin de ces tableaux, j'ai un petit tableau
récapitulatif sur 4 colonnes.
Je voudrais pouvoir insérer à partir de la derniere ligne de mon 1er tableau
un nombre de lignes que j'aurais défini dans une cellule sur mon onglet
"page de garde" et ces lignes que je voudrais insérer doivent reprendre les
formules du tableau au dessus.
Ex : sur l'onglet1, mon tableau va de A4 à P20.
Dans Page de Garde, en A5 je rentre 5
Et en cliquant sur mon bouton, mon tableau sur l'onglet A1 se vois rajouter
5 nouvelles lignes, copie de la ligne 20 (mais juste les formules).
Réponse de PMO (merci pour votre aide) :
1) La procédure suivante est à copier dans votre bouton
'**********
Private Sub CommandButton1_Click()
If Not IsNumeric([a5]) Then
MsgBox "La cellule A5 n'est pas un nombre"
Exit Sub
End If
Call PMO_AjoutLigne(CLng([a5]))
End Sub
'**********
2) Copiez la procédure suivante dans un module standard
et adaptez le nom "Feuil1" dans la ligne
Set S = Sheets("Feuil1")
avec le nom de la feuille où figure votre tableau.
'**********
Sub PMO_AjoutLigne(x As Long)
Dim S As Worksheet
Dim R As Range
Dim C As Range
Dim last&
if x>50 then exit sub 'limitation à 50
Set S = Sheets("Feuil1")
Set R = S.[a4].CurrentRegion
last& = R.Rows.Count + 3
For i& = 1 To x
S.Rows(last& + 1).Insert Shift:=xlDown
Next i&
S.Select
Set R = S.Range(Cells(last&, 1), _
Cells(last&, R.Columns.Count))
For Each C In R
If C.HasFormula Then
C.AutoFill _
Destination:=Range(C.Resize(x + 1, 1).Address)
End If
Next C
End Sub
Je me permets de relancer le sujet, avec en copie la réponse de PMO. En executant le code qu'il m'a envoyé, il n'y a rien qui se passe. Aucune insertion de lignes qui se fait. J'ai passé une partie de ma soirée à voir ou cela pouvait "merder" mais je n'ai pas tout compris :-) Merci d'avance si vous pouviez me dépatouiller.
PB : J'ai un classeur avec 2 onglets ayant chacun un tableau commençant en A4 et finissant en P? (longueur variable en fonction des onglets). 2 lignes en dessous de la fin de ces tableaux, j'ai un petit tableau récapitulatif sur 4 colonnes.
Je voudrais pouvoir insérer à partir de la derniere ligne de mon 1er tableau un nombre de lignes que j'aurais défini dans une cellule sur mon onglet "page de garde" et ces lignes que je voudrais insérer doivent reprendre les formules du tableau au dessus.
Ex : sur l'onglet1, mon tableau va de A4 à P20. Dans Page de Garde, en A5 je rentre 5 Et en cliquant sur mon bouton, mon tableau sur l'onglet A1 se vois rajouter 5 nouvelles lignes, copie de la ligne 20 (mais juste les formules).
Réponse de PMO (merci pour votre aide) : 1) La procédure suivante est à copier dans votre bouton '********** Private Sub CommandButton1_Click() If Not IsNumeric([a5]) Then MsgBox "La cellule A5 n'est pas un nombre" Exit Sub End If Call PMO_AjoutLigne(CLng([a5])) End Sub '**********
2) Copiez la procédure suivante dans un module standard et adaptez le nom "Feuil1" dans la ligne Set S = Sheets("Feuil1") avec le nom de la feuille où figure votre tableau. '********** Sub PMO_AjoutLigne(x As Long) Dim S As Worksheet Dim R As Range Dim C As Range Dim last& if x>50 then exit sub 'limitation à 50 Set S = Sheets("Feuil1") Set R = S.[a4].CurrentRegion last& = R.Rows.Count + 3 For i& = 1 To x S.Rows(last& + 1).Insert Shift:=xlDown Next i& S.Select Set R = S.Range(Cells(last&, 1), _ Cells(last&, R.Columns.Count)) For Each C In R If C.HasFormula Then C.AutoFill _ Destination:=Range(C.Resize(x + 1, 1).Address) End If Next C End Sub
Comres.metz
Merci, je redescends vers le bon Topic. "PMO" <patrickPOINTmorangeAROBASElapostePOINTnet> a écrit dans le message de news:
Bonjour,
J'ai répondu dans votre fil précédent.
Cordialement. -- PMO Patrick Morange
Bonjour à toutes et à tous,
Je me permets de relancer le sujet, avec en copie la réponse de PMO. En executant le code qu'il m'a envoyé, il n'y a rien qui se passe. Aucune
insertion de lignes qui se fait. J'ai passé une partie de ma soirée à voir
ou cela pouvait "merder" mais je n'ai pas tout compris :-) Merci d'avance si vous pouviez me dépatouiller.
PB : J'ai un classeur avec 2 onglets ayant chacun un tableau commençant en A4 et
finissant en P? (longueur variable en fonction des onglets). 2 lignes en dessous de la fin de ces tableaux, j'ai un petit tableau récapitulatif sur 4 colonnes.
Je voudrais pouvoir insérer à partir de la derniere ligne de mon 1er tableau
un nombre de lignes que j'aurais défini dans une cellule sur mon onglet "page de garde" et ces lignes que je voudrais insérer doivent reprendre les
formules du tableau au dessus.
Ex : sur l'onglet1, mon tableau va de A4 à P20. Dans Page de Garde, en A5 je rentre 5 Et en cliquant sur mon bouton, mon tableau sur l'onglet A1 se vois rajouter
5 nouvelles lignes, copie de la ligne 20 (mais juste les formules).
Réponse de PMO (merci pour votre aide) : 1) La procédure suivante est à copier dans votre bouton '********** Private Sub CommandButton1_Click() If Not IsNumeric([a5]) Then MsgBox "La cellule A5 n'est pas un nombre" Exit Sub End If Call PMO_AjoutLigne(CLng([a5])) End Sub '**********
2) Copiez la procédure suivante dans un module standard et adaptez le nom "Feuil1" dans la ligne Set S = Sheets("Feuil1") avec le nom de la feuille où figure votre tableau. '********** Sub PMO_AjoutLigne(x As Long) Dim S As Worksheet Dim R As Range Dim C As Range Dim last& if x>50 then exit sub 'limitation à 50 Set S = Sheets("Feuil1") Set R = S.[a4].CurrentRegion last& = R.Rows.Count + 3 For i& = 1 To x S.Rows(last& + 1).Insert Shift:=xlDown Next i& S.Select Set R = S.Range(Cells(last&, 1), _ Cells(last&, R.Columns.Count)) For Each C In R If C.HasFormula Then C.AutoFill _ Destination:=Range(C.Resize(x + 1, 1).Address) End If Next C End Sub
Merci, je redescends vers le bon Topic.
"PMO" <patrickPOINTmorangeAROBASElapostePOINTnet> a écrit dans le message de
news:1E961B6E-AE9B-4658-A8B6-D2E5D2605D3F@microsoft.com...
Bonjour,
J'ai répondu dans votre fil précédent.
Cordialement.
--
PMO
Patrick Morange
Bonjour à toutes et à tous,
Je me permets de relancer le sujet, avec en copie la réponse de PMO.
En executant le code qu'il m'a envoyé, il n'y a rien qui se passe.
Aucune
insertion de lignes qui se fait. J'ai passé une partie de ma soirée à
voir
ou cela pouvait "merder" mais je n'ai pas tout compris :-)
Merci d'avance si vous pouviez me dépatouiller.
PB :
J'ai un classeur avec 2 onglets ayant chacun un tableau commençant en A4
et
finissant en P? (longueur variable en fonction des onglets).
2 lignes en dessous de la fin de ces tableaux, j'ai un petit tableau
récapitulatif sur 4 colonnes.
Je voudrais pouvoir insérer à partir de la derniere ligne de mon 1er
tableau
un nombre de lignes que j'aurais défini dans une cellule sur mon onglet
"page de garde" et ces lignes que je voudrais insérer doivent reprendre
les
formules du tableau au dessus.
Ex : sur l'onglet1, mon tableau va de A4 à P20.
Dans Page de Garde, en A5 je rentre 5
Et en cliquant sur mon bouton, mon tableau sur l'onglet A1 se vois
rajouter
5 nouvelles lignes, copie de la ligne 20 (mais juste les formules).
Réponse de PMO (merci pour votre aide) :
1) La procédure suivante est à copier dans votre bouton
'**********
Private Sub CommandButton1_Click()
If Not IsNumeric([a5]) Then
MsgBox "La cellule A5 n'est pas un nombre"
Exit Sub
End If
Call PMO_AjoutLigne(CLng([a5]))
End Sub
'**********
2) Copiez la procédure suivante dans un module standard
et adaptez le nom "Feuil1" dans la ligne
Set S = Sheets("Feuil1")
avec le nom de la feuille où figure votre tableau.
'**********
Sub PMO_AjoutLigne(x As Long)
Dim S As Worksheet
Dim R As Range
Dim C As Range
Dim last&
if x>50 then exit sub 'limitation à 50
Set S = Sheets("Feuil1")
Set R = S.[a4].CurrentRegion
last& = R.Rows.Count + 3
For i& = 1 To x
S.Rows(last& + 1).Insert Shift:=xlDown
Next i&
S.Select
Set R = S.Range(Cells(last&, 1), _
Cells(last&, R.Columns.Count))
For Each C In R
If C.HasFormula Then
C.AutoFill _
Destination:=Range(C.Resize(x + 1, 1).Address)
End If
Next C
End Sub
Merci, je redescends vers le bon Topic. "PMO" <patrickPOINTmorangeAROBASElapostePOINTnet> a écrit dans le message de news:
Bonjour,
J'ai répondu dans votre fil précédent.
Cordialement. -- PMO Patrick Morange
Bonjour à toutes et à tous,
Je me permets de relancer le sujet, avec en copie la réponse de PMO. En executant le code qu'il m'a envoyé, il n'y a rien qui se passe. Aucune
insertion de lignes qui se fait. J'ai passé une partie de ma soirée à voir
ou cela pouvait "merder" mais je n'ai pas tout compris :-) Merci d'avance si vous pouviez me dépatouiller.
PB : J'ai un classeur avec 2 onglets ayant chacun un tableau commençant en A4 et
finissant en P? (longueur variable en fonction des onglets). 2 lignes en dessous de la fin de ces tableaux, j'ai un petit tableau récapitulatif sur 4 colonnes.
Je voudrais pouvoir insérer à partir de la derniere ligne de mon 1er tableau
un nombre de lignes que j'aurais défini dans une cellule sur mon onglet "page de garde" et ces lignes que je voudrais insérer doivent reprendre les
formules du tableau au dessus.
Ex : sur l'onglet1, mon tableau va de A4 à P20. Dans Page de Garde, en A5 je rentre 5 Et en cliquant sur mon bouton, mon tableau sur l'onglet A1 se vois rajouter
5 nouvelles lignes, copie de la ligne 20 (mais juste les formules).
Réponse de PMO (merci pour votre aide) : 1) La procédure suivante est à copier dans votre bouton '********** Private Sub CommandButton1_Click() If Not IsNumeric([a5]) Then MsgBox "La cellule A5 n'est pas un nombre" Exit Sub End If Call PMO_AjoutLigne(CLng([a5])) End Sub '**********
2) Copiez la procédure suivante dans un module standard et adaptez le nom "Feuil1" dans la ligne Set S = Sheets("Feuil1") avec le nom de la feuille où figure votre tableau. '********** Sub PMO_AjoutLigne(x As Long) Dim S As Worksheet Dim R As Range Dim C As Range Dim last& if x>50 then exit sub 'limitation à 50 Set S = Sheets("Feuil1") Set R = S.[a4].CurrentRegion last& = R.Rows.Count + 3 For i& = 1 To x S.Rows(last& + 1).Insert Shift:=xlDown Next i& S.Select Set R = S.Range(Cells(last&, 1), _ Cells(last&, R.Columns.Count)) For Each C In R If C.HasFormula Then C.AutoFill _ Destination:=Range(C.Resize(x + 1, 1).Address) End If Next C End Sub