Problème : ligne qui change de hauteur à l'exécution d'une macro

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 !

tacite56

XLDnaute Nouveau
Bonjour,

Je suis un débutant, autant sur Excel qu'en VBA. Mais, grâce à quelques bon tuto sur le net et une nuit blanche, j'ai réussi à me créer une petite base de donnée gérant ma vidéothèque. Cependant, des erreurs demeurent et je ne suis pas suffisamment bon en VBA pour les identifier et les corriger... Par exemple, lorsque je créer un nouveau film, la ligne 2 du tableau principal ('liste films') s'allonge démesurément en hauteur pour accueillir le nouveau film. Je sais que ce n'est pas grand chose, mais je ne sais pas comment y remédier et c'est assez énervant🙂.

Je me doute que le code de la macro 'nouveau' est un peu fourre tout et mal agencée, mais mes connaissances actuelles ne me permettent pas de le simplifier.

Merci d'avance pour votre aide !
 

Pièces jointes

Re : Problème : ligne qui change de hauteur à l'exécution d'une macro

Bonjour Tacite56 et bienvenue 🙂,
Ta macro un peu amaigrie et corrigée 😛...
Code:
Sub Nouveau()
With Sheets("Liste films")
    .Rows("2:2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
    .Range("A2:J2").Value = Sheets("Nouveau").Range("A2:J2").Value
End With
Sheets("Nouveau").Range("C8:C10,C12:C14,F8,F12:F13").ClearContents
Range("C8").Select
End Sub
Bonne suite 😎
 
Re : Problème : ligne qui change de hauteur à l'exécution d'une macro

Bonjour Tacite, et bienvenue sur le forum
Par exemple, lorsque je créer un nouveau film, la ligne 2 du tableau principal ('liste films') s'allonge démesurément en hauteur pour accueillir le nouveau film.
contrairement à ce que tu crois, cette nouvelle ligne créée ne s'allonge pas en hauteur, elle prend le format de la ligne qui précède (la ligne 1)
pour y remédier, j'ai caché la ligne 2 (elle est entièrement vide) et c'est maintenant la ligne3 qui prend les nouvelles entrées (après insertion d'une nouvelle ligne)

j'ai fait une petite modif du code pour cela

ton fichier en retour

à+
Philippe

Edit: Bonjour la neige et les Vosges
 

Pièces jointes

Re : Problème : ligne qui change de hauteur à l'exécution d'une macro

Bonjour,

Une autre proposition. Comme tu as créé un tableau (au sens excel par insertion/tableau) nommé 'Tableau1' j'utilise cet objet pour créer la nouvelle ligne et y mettre les valeurs:

Code:
Sub Nouveau()
    Dim lR As Range
    Dim Num As Long
    Set lR = Sheets("Liste films").ListObjects("Tableau1").ListRows.Add(1).Range
     'On Travaille à partir de la feuille Nouveau [Les '.range(...)' se rapportent au With qui précède donc la feuille
    With Sheets("Nouveau")
        lR(1, 2) = .Range("C8")
        lR(1, 3) = .Range("C9")
        lR(1, 4) = .Range("C10")
        lR(1, 5) = .Range("F8")
        lR(1, 6) = .Range("C12")
        lR(1, 7) = .Range("C13")
        lR(1, 8) = .Range("C14")
        lR(1, 9) = .Range("F12")
        lR(1, 10) = .Range("F13")
        'Nettoyage des cellules de 'nouveau'
        .Range("C8:C10,C12:C14,F8,F12:F13").ClearContents
        'Calcul du numéro
        lR(1, 1) = Application.Max(Sheets("Liste films").Range("Tableau1[N°]")) + 1
    End With
End Sub

A+
 
Re : Problème : ligne qui change de hauteur à l'exécution d'une macro

Re, bonjour Hasco,

ou bien plus simple, il suffit d'ajouter la ligne:

Rows("2:2").EntireRow.AutoFit

comme ceci: (dans ton fichier d'origine)
Code:
Sub Nouveau()
'
' Nouveau Macro
'

'
    Sheets("Liste films").Select
    Rows("2:2").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Rows("2:2").EntireRow.AutoFit

à+
Philippe
 
Re : Problème : ligne qui change de hauteur à l'exécution d'une macro

Vous êtes super gentils, maintenant ça marche !! C'est beau internet !😀

Pendant que j'y suis, et parce que l'appétit vient en mangeant, j'aimerais faire une chose plus complexe dont je n'ai pas le moindre début d'un commencement d'idée...

Je souhaiterai pouvoir rechercher de façon assez intuitive des films selon leur durée. Par exemple, ne rechercher que les films de moins de 90 minutes. J'imagine (mais ça risque d'être complexe je suppose) une petite liste déroulante avec une sélection de durées. Par exemple : - 140 min. ; -120 ; -90 ... De manière à ce que, si je sélectionne -90, ne s'affichent que les films de moins de 90 min.

Peut-être suis-je un peu ambitieux, parce que je suis à des années lumières de pouvoir réaliser un truc pareil ; mais si quelqu'un peut me mettre sur la piste, je ne dis pas non !

Et merci encore pour votre aide, c'est un réel plaisir que de fréquenter ce forum !
 
Re : Problème : ligne qui change de hauteur à l'exécution d'une macro

Bonjour,

Pourquoi ne pas tout simplement utiliser les filtres numériques. En cliquant sur la petite flèche dans la cellule 'Durée' tu as un menu qui apparaît avec 'Filtre numériques' et tout un tas d'option dans ce menu.

A+

Bonjour Philippe😀, JNP😀
 
Dernière modification par un modérateur:
Re : Problème : ligne qui change de hauteur à l'exécution d'une macro

Oui, à la réflexion, tu as raison ! je souhaitais quelque chose d'encore plus intuitif, mais ce serais vraiment se compliquer la vie alors que les outils existent déjà et sont suffisamment performants ! Désolé donc pour mon dernier post, ma réflexion n'était pas assez aboutie !


A + !
 
Re : Problème : ligne qui change de hauteur à l'exécution d'une macro

Pour Hasco : Oui, à la réflexion, tu as raison ! je souhaitais quelque chose d'encore plus intuitif, mais ce serais vraiment se compliquer la vie alors que les outils existent déjà et sont suffisamment performants ! Désolé donc pour mon dernier post, ma réflexion n'était pas assez aboutie !


A + !
 
Re : Problème : ligne qui change de hauteur à l'exécution d'une macro

Re 🙂,
@JNPeffectivement c'est plus simple ....... mais je ne connaissais pas
Moi non plus 😛...
J'ai esssayé de l'obtenir par Henry Gistreur, mais que dalle 😱...
Alors j'ai saisi : xlFormatFromLeftOrAbove dans l'aide, et là, il m'a proposé : Énumération XlInsertFormatOrigin...
Et c'est là que j'ai trouvé la bonne valeur (je voyais pas pourquoi il y avait un : CopyOrigin:= s'il n'y avait qu'une possibilité 😱...) 😉 !
Bonne soirée (et Saint-Valentin, j'espère que tu n'as pas ceuilli toutes les fleurs de ton jardin, même si elle le mérite 😛...)
 
- 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
9
Affichages
700
Réponses
13
Affichages
2 K
Retour