OVH Cloud OVH Cloud

macro pour insérer lignes

12 réponses
Avatar
pierre
Bonsoir,

Je voudrais insérer une plage de texte (feuille1!A1: A4) dans ma feuille2
entre les lignes A2 et A4 . Je fais bêtement un copier et insérer les
cellules copiées mais j'ai besoin d'automatiser pour gagner du temps. Il
faudrait que ma plage de cellule, qui comporte 4 lignes s'insère dans
feuille2 en A3 jusqu'à A7 et fasse descendre en A8 les données de A4. It's
possible?

pierre

2 réponses

1 2
Avatar
pierre
Bonsoir jps,

Bien sur, merci à toi aussi, surtout que maintenant grace à vous j'ai accédé
à une marche de plus dans la connaissance du VBA (je pense être seulement
tout en bas!).

Bonne soirée
pierre
"jps" a écrit dans le message de news:

et pas un mot pour moi, pierre?
t'aurais-je dit des c.....ies par zazar?
jps

"pierre" a écrit dans le message de
news:
Bonjour Michdenis,

Je te remercie pour tes éclaircissements et je vais de ce pas sur
excelabo.


Bonne journée
pierre

"MichDenis" a écrit dans le message de news:
%
Bonjour Pierre,

Pour simplifier, les modules Feuille (module de classe) reçoivent
habituellement le code qui leur est réservé soit par
les événements qui leur sont propres ou soient par les objets
appartenant


à ces feuilles comme des boutons de
commande... Listbox, graphe....
En contrepartie, les modules "Standard " accueillent les macros
(Procédures et Fonctions personnalisées) qui
s'appliquent généralement à l'ensemble du classeur ou qui impliquent
plusieurs feuilles ou objets appartenant au
classeur.

Le sujet est beaucoup trop vaste pour entrer dans les détails... sauf
qu'il faut se rappeler que malgré toutes les
nuances possibles, la ligne de démarcation entre les 2 n'est pas
toujours


évidente. Cependant, la façon de faire
référence aux objets est différente selon que le code est écrit dans un
module feuille ou un module standard. La
déclaration de variables et leur étendue sont aussi différentes selon
l'endroit où elle est faite!

Si la chose t'intéresse vraiment, la consultation d'un bouquin sur le
sujet s'impose. Il y a, je crois, un début de
bibliographie à cette adresse : <http://www.excelabo.net>

Salutations!





"pierre" a écrit dans le message de news:
ukS8d%
Merci beaucoup,
c'est exactement ce que je voulais! Par contre à quoi sert un module
par
rapports à objets?

Pierre


"MichDenis" a écrit dans le message de news:

Bonjour Pierre,

La correction que tu désires a été effectué.

'-------------------------------
Sub CopierInserer()

Dim Rg As Range

With Worksheets("Feuil1")
Set Rg = .Range("A1:A4")
End With

With Worksheets("Feuil2")
If .Range("A1") > 0 Then
.Range("A3:A" & Rg.Rows.Count + 2).Insert (xlDown)
Rg.Copy .Range("A3")
End If
End With

Set Rg = Nothing

End Sub
'-------------------------------


Salutations!



"pierre" a écrit dans le message de news:
%
Je te remercie cela marche. Par contre je ne connaissais pas le
dossier
module!
Est ce que cette macro marche avec une condition "si" du genre:
=Si (feuil2!A1>0; recopie et insère feuil1!A1:A4 dans feuil2!A3) ?????

Merci d'avance pour ta réponse
Pierre

"MichDenis" a écrit dans le message de news:

Bonjour Pierre,

Télécharge ce fichier exemple : http://cjoint.com/?dtv62SE6Qa


Salutations!


"pierre" a écrit dans le message de news:
%
Bonsoir MichDenis,

Merci pour ta réponse. J'ai recopié ta macro dans MVB de ma feuil2 et
rien!
Ci-dessous macro recopié (mes feuilles s'intitulent bien feuil1 et
feuil2):

Sub CopierInserer()

Dim Rg As Range

With Worksheets("Feuil1")
Set Rg = .Range("A1:A4")
End With

With Worksheets("Feuil2")
.Range("A3:A" & Rg.Rows.Count + 2).Insert (xlDown)
Rg.Copy .Range("A3")
End With

Set Rg = Nothing

End Sub

pierre

"MichDenis" a écrit dans le message de news:

Bonjour Pierre,


La macro qui suit copie les données de la plage de cellules A1:A4 de
la





feuille1 vers la feuille2

Sur la feuille2, la procédure insère le nombre de lignes nécessaires
à





la
copie des données de la feuille1 à partir de
la ligne A3 . En conséquence, les données seront copiées en A3:A6,
les





données présentes se retrouvant à la suite ...

'------------------------------
Sub CopierInserer()

Dim Rg As Range

With Worksheets("Feuil1")
Set Rg = .Range("A1:A4")
End With

With Worksheets("Feuil2")
.Range("A3:A" & Rg.Rows.Count + 2).Insert (xlDown)
Rg.Copy .Range("A3")
End With

Set Rg = Nothing

End Sub
'------------------------------


Salutations!



"pierre" a écrit dans le message de news:

Bonsoir,

Je voudrais insérer une plage de texte (feuille1!A1: A4) dans ma
feuille2
entre les lignes A2 et A4 . Je fais bêtement un copier et insérer
les
cellules copiées mais j'ai besoin d'automatiser pour gagner du
temps.
Il
faudrait que ma plage de cellule, qui comporte 4 lignes s'insère
dans





feuille2 en A3 jusqu'à A7 et fasse descendre en A8 les données de
A4.
It's
possible?

pierre



























Avatar
jps
merci pierre
si tu es déjà sur une marche, moi je ne suis encore qu'au pied de l'escalier
et il est long le bougre...
le pastiche d'un proverbe russe pourrait me faire dire : "jusqu'à Dieu,
c'est haut : jusqu'à denis, c'est loin"...
jps

"pierre" a écrit dans le message de
news:%
Bonsoir jps,

Bien sur, merci à toi aussi, surtout que maintenant grace à vous j'ai
accédé

à une marche de plus dans la connaissance du VBA (je pense être seulement
tout en bas!).

Bonne soirée
pierre
"jps" a écrit dans le message de news:

et pas un mot pour moi, pierre?
t'aurais-je dit des c.....ies par zazar?
jps

"pierre" a écrit dans le message de
news:
Bonjour Michdenis,

Je te remercie pour tes éclaircissements et je vais de ce pas sur
excelabo.


Bonne journée
pierre

"MichDenis" a écrit dans le message de news:
%
Bonjour Pierre,

Pour simplifier, les modules Feuille (module de classe) reçoivent
habituellement le code qui leur est réservé soit par
les événements qui leur sont propres ou soient par les objets
appartenant


à ces feuilles comme des boutons de
commande... Listbox, graphe....
En contrepartie, les modules "Standard " accueillent les macros
(Procédures et Fonctions personnalisées) qui
s'appliquent généralement à l'ensemble du classeur ou qui impliquent
plusieurs feuilles ou objets appartenant au
classeur.

Le sujet est beaucoup trop vaste pour entrer dans les détails... sauf
qu'il faut se rappeler que malgré toutes les
nuances possibles, la ligne de démarcation entre les 2 n'est pas
toujours


évidente. Cependant, la façon de faire
référence aux objets est différente selon que le code est écrit dans
un




module feuille ou un module standard. La
déclaration de variables et leur étendue sont aussi différentes selon
l'endroit où elle est faite!

Si la chose t'intéresse vraiment, la consultation d'un bouquin sur le
sujet s'impose. Il y a, je crois, un début de
bibliographie à cette adresse : <http://www.excelabo.net>

Salutations!





"pierre" a écrit dans le message de news:
ukS8d%
Merci beaucoup,
c'est exactement ce que je voulais! Par contre à quoi sert un module
par
rapports à objets?

Pierre


"MichDenis" a écrit dans le message de news:

Bonjour Pierre,

La correction que tu désires a été effectué.

'-------------------------------
Sub CopierInserer()

Dim Rg As Range

With Worksheets("Feuil1")
Set Rg = .Range("A1:A4")
End With

With Worksheets("Feuil2")
If .Range("A1") > 0 Then
.Range("A3:A" & Rg.Rows.Count + 2).Insert (xlDown)
Rg.Copy .Range("A3")
End If
End With

Set Rg = Nothing

End Sub
'-------------------------------


Salutations!



"pierre" a écrit dans le message de news:
%
Je te remercie cela marche. Par contre je ne connaissais pas le
dossier
module!
Est ce que cette macro marche avec une condition "si" du genre:
=Si (feuil2!A1>0; recopie et insère feuil1!A1:A4 dans feuil2!A3)
?????






Merci d'avance pour ta réponse
Pierre

"MichDenis" a écrit dans le message de news:

Bonjour Pierre,

Télécharge ce fichier exemple : http://cjoint.com/?dtv62SE6Qa


Salutations!


"pierre" a écrit dans le message de news:
%
Bonsoir MichDenis,

Merci pour ta réponse. J'ai recopié ta macro dans MVB de ma feuil2
et






rien!
Ci-dessous macro recopié (mes feuilles s'intitulent bien feuil1 et
feuil2):

Sub CopierInserer()

Dim Rg As Range

With Worksheets("Feuil1")
Set Rg = .Range("A1:A4")
End With

With Worksheets("Feuil2")
.Range("A3:A" & Rg.Rows.Count + 2).Insert (xlDown)
Rg.Copy .Range("A3")
End With

Set Rg = Nothing

End Sub

pierre

"MichDenis" a écrit dans le message de
news:







Bonjour Pierre,


La macro qui suit copie les données de la plage de cellules A1:A4
de







la
feuille1 vers la feuille2

Sur la feuille2, la procédure insère le nombre de lignes
nécessaires







à
la
copie des données de la feuille1 à partir de
la ligne A3 . En conséquence, les données seront copiées en A3:A6,
les





données présentes se retrouvant à la suite ...

'------------------------------
Sub CopierInserer()

Dim Rg As Range

With Worksheets("Feuil1")
Set Rg = .Range("A1:A4")
End With

With Worksheets("Feuil2")
.Range("A3:A" & Rg.Rows.Count + 2).Insert (xlDown)
Rg.Copy .Range("A3")
End With

Set Rg = Nothing

End Sub
'------------------------------


Salutations!



"pierre" a écrit dans le message de news:

Bonsoir,

Je voudrais insérer une plage de texte (feuille1!A1: A4) dans ma
feuille2
entre les lignes A2 et A4 . Je fais bêtement un copier et insérer
les
cellules copiées mais j'ai besoin d'automatiser pour gagner du
temps.
Il
faudrait que ma plage de cellule, qui comporte 4 lignes s'insère
dans





feuille2 en A3 jusqu'à A7 et fasse descendre en A8 les données de
A4.
It's
possible?

pierre































1 2