XL 2013 gigigg

Dranreb

XLDnaute Barbatruc
Qu'est ce qui vous donne à penser qu'il pourrait y avoir un blocage ?
Mettez déjà le code qui insère une ligne si prc est < 100, vous verrez bien.
C'est la méthode Insert de l'objet Range, appliqué à une ligne entière, c'est à dire à un élément de la collection Rows de la feuille.
C'est à faire à la fin, puisque ce sera pour la situation suivante.
 

BoixosNois

XLDnaute Nouveau
je me suis dit peut être que parce que c'est une nouvelle condition que ça pourrait bloquer ce qui a été fait avant,
concernant l'ajout d'une feuille c'est ce que j'ai pu faire :

VB:
If Prc < 100 Then
    Prc.EntireRow.Insert Shift:=xlShiftDown
  End If

je ne sais pas quoi changer pour que la ligne s'ajoute sur l'onglet ECHEANCIER et précissement en dessous de la ligne qui correspond la situation
c'est un peu compliqué pour moi :(
 

Dranreb

XLDnaute Barbatruc
Prc n'est pas un Range. Il ne possède donc pas de propriété EntireRow.
Cherchez encore.
Commencez par vous demander quel est l'objet Worksheet qui représente la feuille "ECHEANCE". On l'a déjà vu et utilisé plusieurs fois.
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Vous n'avez pas retrouvé le nom de l'objet Worksheet qui représente cette feuille ?
Et Feuil1 c'est quoi ? À moins bien sûr qu'il n'existe plus parce que vous auriez eu la bonne idée de taper tout en haut dans sa fenêtre de propriétés quelque chose de plus mnémonique tel que FÉché par exemple…
Si c'est toujours Feuil1, appliquez y ce que je vous ai dit au poste #44.
Quand on dit FaireUnTruc sur le Machin de la Chose ça s'écrit toujours Chose.Machin.FaireUnTruc
Et si c'est un élément d'une collection, on spécifie derrière son nom une expression entre parenthèses valant son numéro (ou son nom si c'est une collection d'objets nommés). Dans votre cas le numéro de la ligne sera NumSit + 15 je crois…
Solution masquée: Feuil1.Rows(NumSit + 15).Insert
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonjour.
À quoi bon rechercher cette feuille dans la collection Sheets du classeur puisqu'il existe dans la rubrique Microsoft Excel Objets du projet VBA un objet Worksheet qui la représente ?
Inutile de sélectionner la feuille pour ça. D'ailleurs il n'y a aucune raison que ce soit une cellule de la ligne NumSit+15 qui y soit active.
Après avoir créé la ligne mais en employant des expressions objets plus judicieuses, concises et performantes que celles là, remplissez ses cellules des valeurs qu'il faut.
 

Dranreb

XLDnaute Barbatruc
Qu'est ce que vous n'avez pas compris ?
Qu'est ce que vous voyez dans l'explorateur, au projet de votre classeur dans sa première rubrique qui s'appelle Microsoft Excel Objets ?
Il y a bien une ligne indiquant Feuil1 (ECHEANCIER) non ?
Alors comme ça quand on utilisait Feuil1 dans le code vous n'aviez jusqu'à présent absolument rien compris à ce que ça représentait ???
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Non. Feuil1 est une expression objet de type Worksheet qui assume la représentation interne dans VBA d'exactement la même entité Excel (en l’occurrence une feuille de calcul) que l'expression Sheets("ECHEANCIER") sauf qu'elle ne déclenche pas de recherche du nom de la feuille dans la collection Sheets du classeur, puisque l'objet est directement et immédiatement connu de VBA.

Et il n'y a pas de Select à faire. Juste :
VB:
 Feuil1.Rows(NumSit + 15).Insert
 
Dernière édition:

Discussions similaires

Réponses
9
Affichages
114

Statistiques des forums

Discussions
312 103
Messages
2 085 325
Membres
102 862
dernier inscrit
Emma35400