XL 2019 Insérer une ligne dans une plage nommé et sélectionner 1ere cellule de la ligne

juju91

XLDnaute Nouveau
Bonjour a tous

Cela fait plusieurs jours que je recherche la solution a mon problème ensolution.

Je souhaiterais ajouter une ligne dans une plage nommée ( ça c'est bon) mais j'aimerais pouvoir sélectionner la première cellule à gauche( 1 colonne) de la ligne insérée.
et la impossible de trouver la solution.

Merci à tous ceux qui pourraient me diriger vers une solution.
Par avance merci .

Cdt
 

Pièces jointes

  • inserer ligne tableau structué 22.xlsm
    22.3 KB · Affichages: 6

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Voici :

VB:
Sub insertligne()

    With Sheets("Feuil1").ListObjects("TEST").ListRows.Add(2)
        .Range(1, 1).Select
    End With

End Sub
Qui peut être réduit à
VB:
Sub insertligne()
Sheets("Feuil1").ListObjects("TEST").ListRows.Add(2).Range(1, 1).Select
End Sub

Si vous n'avez qu'une action (select ici) à faire sur votre ligne.

Par contre c'est une très mauvaise idée de mettre deux tableaux l'un sous l'autre sans même une ligne vide pour les sépare.
Cordialement
 

Pièces jointes

  • inserer ligne tableau structué 22.xlsm
    27.8 KB · Affichages: 4

Staple1600

XLDnaute Barbatruc
Bonsoir le fil

En ma demeure
ceci

VB:
Sub Insert_ligne_Bis()
Dim nL As ListRow
Set nL = Feuil1.ListObjects(1).ListRows.Add
nL.Range(1, 1) = "Bazinga!"
End Sub
ne fait pas cela
VB:
Sub insertligne()
Sheets("Feuil1").ListObjects("TEST").ListRows.Add(2).Range(1, 1).Value = "Hasco"
End Sub

C'est normal, Docteur
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonjour le fil,

Hasco
En ma demeure, depuis mon salon, devant mon écran
Si je lance ton code
La ligne s'ajoute à partir de la ligne d'entête
Le mien ajoute la ligne à la fin du tableau

Tu vas me dire que c'est tout à fait normal et que ces temps-ci j'ai des absences VBAistiques ?

NB: Je crois que la clé est dans ton Add(2)
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re l'agrafe :)

Le sieur @juju91 demandeur de son état demandait ou disait :
Je souhaiterais ajouter une ligne dans une plage nommée ( ça c'est bon)

Si "ça c'est bon" il m'a semblé, en conséquence que je n'avais pas d'autres choix à faire.
Il veut ajouter en 2, pas en fin de tableau, il ajoute en 2, pas à réfléchir là-dessus.

Cordialement
 

Phil69970

XLDnaute Barbatruc
Bonjour à vous tous

Effectivement la réponse d'Hasco ne réponds pas tout à fait à la demande de @juju91 sur le positionnement de la cellule active.
J'avais cru comprendre que le demandeur en avait fait un pré-requis.
Un retour du demandeur devrait préciser cela.
Mais reviendra t'il un jour nous départager ?;)

@Phil69970
 

Staple1600

XLDnaute Barbatruc
Bonsoir Phil69970

Puisqu'on parle ListObjects et en attendant que mon potage refroidisse ;)
VB:
Sub Tablons_sur_le_Tableur()
MsgBox Sheets("Feuil1").ListObjects("TEST").DataBodyRange.Address 'ok
MsgBox Range("TEST").ListObject.Range.Address 'ok
[TEST].ListObject.ListRows.Add.Range(1, 1).Value = "Hasco" 'ok
[TEST].ListObject.ListRows.Add(2).Range(1, 2).Value = "Staple" 'ok
[TEST].ListObject.ListRows.Add(3).Range(1, 3).Value = "Bazinga!" 'ok
[TEST].ListObject.ListRows.Add 'ok
End Sub
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Effectivement la réponse d'Hasco ne réponds pas tout à fait à la demande de @juju91 sur le positionnement de la cellule active.
Re demande du sieur @juju91 :

mais j'aimerais pouvoir sélectionner la première cellule à gauche( 1 colonne) de la ligne insérée.

Et ils servent à quoi les 'select' dans ma réponse du post#2
Sheets("Feuil1").ListObjects("TEST").ListRows.Add(2).Range(1, 1).Select

C'est pas parce que j'autorise @Staple1600 que je connais depuis ...(n'y pensons pas) à me titiller que j'autoriserai n'importe qui à faire ce genre d'assertion. D'ailleurs sans dire en quoi je 'ne réponds pas tout à fait' à la demande. D'autant que je ne me permets aucun commentaire sur votre réponse, même si je pourrais y trouver matière.

Je ne vous salue pas
 
Dernière édition:

Phil69970

XLDnaute Barbatruc
@Hasco

Il y a méprise sur mes intentions je ne veux en aucun cas froisser ou vexer j'ai juste voulu dire que suite au post de @Staple1600 j'ai été regardé d’où ma constatation.

De plus :
D'ailleurs sans dire en quoi je 'ne réponds pas tout à fait' à la demande.

il me semble que j'ai précisé dans le post
sur le positionnement de la cellule active.

Perso : De ce que j'ai compris du demandeur c'est qu'il voulait ajouter 1 nouvelle ligne et avoir la cellule active dans la 1ere cellule de gauche de la nouvelle ligne crée.

L'essentiel ce que le demandeur y retrouve son compte.

*Les petites phrases :
C'est pas parce que j'autorise

Je ne vous salue pas
me semble disproportionné.

Maintenant si le moindre écrit de ma part vous heurte j'en suis désolé

@Phil69970
 

Hasco

XLDnaute Barbatruc
Repose en paix
@Phil69970,

Comprenez que parfois les commentaires et demandes de justifications sur le travail que je viens de fournir me gavent profondément. Parfois j'interprète la demande, réponds à côté intentionnellement, parfois par méprise, mais là franchement, il n'y a pas grande méprise à faire.
Je souhaiterais ajouter une ligne dans une plage nommée ( ça c'est bon) mais j'aimerais pouvoir sélectionner la première cellule à gauche( 1 colonne) de la ligne insérée.

Je me répète: dans la méthode employée par le demandeur, il insère sa ligne en position 2 précisant dans sa demande "ça c'est bon". De mon point de vue (ce n'est que le mien) il n'y a pas lieu à interprétation.

Je ne vois pas en quoi je n'ai pas répondu sur le positionnement de la cellule active dans la ligne ci-dessous, présente dans le post#2 :
Sheets("Feuil1").ListObjects("TEST").ListRows.Add(2).Range(1, 1).Select

Et s'il veut insérer en bas de tableau il lui suffit d'ôter le 2 de la méthode .Add :
Sheets("Feuil1").ListObjects("TEST").ListRows.Add().Range(1, 1).Select
 
Dernière édition:

Phil69970

XLDnaute Barbatruc
Bonjour @Hasco

demandes de justifications sur le travail que je viens de fournir me gavent profondément.
Je ne pense pas avoir demandé une justification sur le travail.
Prendre ma réponse pour une demande de justification c'est se méprendre.

Perso :
-Essayer d'aider bénévolement des personnes sur un fichier excel n'est pas un travail pour moi mais une manière de rendre service dans la mesure de mes moyens et si cela devient un jour une contrainte ou une obligation je ne le ferais plus.

Et je le redis l'essentiel c'est que le demandeur soit satisfait et il l'est.
Merci beaucoup a tous les deux.
les deux solution sont parfaite
merci encore

@Phil69970
 

Discussions similaires

Statistiques des forums

Discussions
312 214
Messages
2 086 313
Membres
103 175
dernier inscrit
abcc