Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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.
 
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 🙁
 
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:
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:
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.
 
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:
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:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
13
Affichages
201
Réponses
16
Affichages
224
Retour