insertions de lignes en VB vers le bas

  • Initiateur de la discussion josias
  • Date de début
J

josias

Guest
Bonjour a tous !

Comment fait-on, en VB, pour inserrer une ligne dans un tableau EXCEL vers le bas !

J'ai essayé ce code mais ça marche pas:

ex:

Rows("21:21").Select
Selection.Insert Shift:=xlDown

Merci de votre attention !
 
Y

Yeahou

Guest
Bonjour Josias, le forum

ben si cela fonctionne et on peut même faire plus simple

Rows("21:21").Insert Shift:=xlDown

tu n'aurais pas des cellules fusionnées qui embéteraient par hazard?

A+
 
P

Pascal76

Guest
Bonjour

Quand tu inséres la ligne s'insères au dessus
Ton xldown n'indique pas que tu insères ta ligne an dessous de la ligne 21 mais que tes données seront décaler vers le bas

Il faut donc sélectionner la ligne 22

Bon courage

Pascal
 
J

josias

Guest
Merci Yeahou !

C'est pas que ça fonctionne pas mais , dans cet exemple, la ligne 21 devient la ligne 22 avec toute ses données alors que je voudrais que la ligne 21 reste 21 et que la ligne 22 soit "vierge" ...

Je sais pas si j'ai été clair....

Dans tous les cas merci quant même....
 
F

Fred

Guest
Pour ajouter une ligne en code dans une colone il faut :

dans un premier temps savoir quelle est la dernier cellule non vide

ensuite descendre d'une cellule

et inserer ta donnee

dim nextrow as long
dim row as long

Nextrow = Feuille.Range("A65536").End(xlUp).row 'definit dans ta feuille quelle est la derniere cellule non vide de la colonne A en partant de la ligne 65536
Range("A4:A" & Nextrow).Select 'par exemple tu fais un copietr
Selection.Copy ' et ensuite un coller

Bon courrage

Fred
 
A

andré

Guest
Salut à vous,

Je ne sais pas ce qui ce passe les derniers temps, on dirait que mes doigts ont grossis !

Je suis ce post depuis le début, car il m'intéresse.

J'ai enregistré une petite macro qui insère une ligne au-dessus de la ligne sélectionnée, copie le contenu de la ligne précédente (pour copier les formules), sélectionne les constantes dans la ligne copiée et les effacent.

Selection.EntireRow.Insert
Range("A15:G15").Select
Selection.AutoFill Destination:=Range("A15:G16"), Type:=xlFillDefault
Range("A15:G16").Select
Rows("16:16").Select
Selection.SpecialCells(xlCellTypeConstants, 23).Select
Selection.ClearContents
Range("A16").Select

Je souhaite modifier les références aux cellules (A15:G15) par la référence de la ligne dans laquelle une cellule a été sélectionnée, de sorte que cette macro soit d'application à n'importe quel endroit de ma feuille.

Pouvez-vous me dire comment je dois procéder ?

Merci d'avance.
Ândré.
 
J

Jean-Marie

Guest
Bonjour le fil

André si je t'ai bien bien compris,

Déclare une variable en début de Sub

Dim vLigne as Long

avant la troisème ligne tu insères
vLigne = ActiveCell.row
Selection.AutoFill Destination:=Range("A"& vLigne&":G"& vLigne), Type:=xlFillDefault

Il y a aussi cette propriété de l'objet applicatiion
Application.ExtendList = False
Cet exemple montre comment faire en sorte que Microsoft Excel n'applique pas les formats et formules aux données ajoutées ultérieurement à une liste existante.

@+Jean-Marie
 
J

Jean-Marie

Guest
Re...

Application.ExtendList, déclaré à True, Indique à Excel de rajouter les formules et les formats quand une nouvelle donnée est saisie à la fin d'un tableau. Cela ne fonctionne pas lors d'une insertion de ligne.

@+Jean-Marie
 
A

andré

Guest
Salut Jean-Marie,

Merci beaucoup, mais cela dépasse mes compétances.
Je n'y connais rien en macro et malgré tes explications et mes diverses tentatives, je ne suis pas parvenu à la faire fonctionner !

Ce que j'essaie de faire est d'insérer une ligne et d'y copier uniquement les formules de la ligne précédente.

Par l'enregisteur macro cela marche, mais uniquement pour une ligne bien précise.
Je crois que je devrais remplacer les références de type A1 par des L()C(), mais je ne parviens pas un bon résultat.

Pourrais-tu m'expliquer un peu plus en détail ?
Merci.

Ândré.
 

Discussions similaires

Statistiques des forums

Discussions
314 210
Messages
2 107 304
Membres
109 798
dernier inscrit
NAJI2005