Suppression de ligne

RONIBO

XLDnaute Impliqué
Bonsoir le forum,

J'ai crée une facture sur excel, il y a quelque code vba dessus

Dont l'une des code concerne le réglage de la hauteur des ligne



If Len(Cells(Target.Row, 3)) > 60 Then
Cells(Target.Row, 3).RowHeight = 30
Else
Cells(Target.Row, 3).RowHeight = 15
End If


Parfois dans mes factures la hauteur des lignes peut passer à 30 (doubler) car la désignation peut être long (plus de 60 caractères)

En faisant ceci, sa m'oblige de supprimer une ligne vide, car le tout de facture ne rentre pas sur une page.

C'est pour ça que j'aimerais pouvoir insérer un code qui supprimera automatiquement la ligne suivante (vide) lorsque la hauteur de la ligne précédente passe à 30.

Je vous mets mon fichier concerné

Merci à vous pour votre temps et votre patience

a bientôt

Ce lien n'existe plus
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Suppression de ligne

Bonjour Ronibo, bonjour le forum,

Peut-être comme ça :
Code:
   If Len(Cells(Target.Row, 3)) > 60 Then
      Cells(Target.Row, 3).RowHeight = 30
      Rows(Target.Row + 1).Delete
   Else
      Cells(Target.Row, 3).RowHeight = 15
   End If
 

mikachu

XLDnaute Occasionnel
Re : Suppression de ligne

Bonjour,

Le problème en supprimant des lignes c'est que ta zone de selection (lignes 20 à 38) va être modifiée et tu vas finir par appliquer ta macro sur des lignes qui ne le doivent pas...
Une autre solution serait peut-etre de "masquer" les lignes.
Autre chose, il faudrait envisager la possibilité de démasquer ces lignes en cas de besoin.

Je te propose de remplacer ça:
VB:
If Not Intersect(Target, Range("C20:E38")) Is Nothing And Target.Count = 3 Then
   Range(Cells(Target.Row, 1), Cells(Target.Row, 8)).Interior.Color = RGB(255, 192, 0)

   If Len(Cells(Target.Row, 3)) > 60 Then
      Cells(Target.Row, 3).RowHeight = 30
   Else
      Cells(Target.Row, 3).RowHeight = 15
   End If

End If

Par ça:
VB:
If Not Intersect(Target, Range("C20:E38")) Is Nothing And Target.Count = 3 Then
   Range(Cells(Target.Row, 1), Cells(Target.Row, 8)).Interior.Color = RGB(255, 192, 0)

   If Len(Cells(Target.Row, 3)) > 60 Then
      If Cells(Target.Row, 3).RowHeight = 15 Then testhauteur = 1
      Cells(Target.Row, 3).RowHeight = 30
   Else
      If Cells(Target.Row, 3).RowHeight = 30 Then testhauteur = -1
      Cells(Target.Row, 3).RowHeight = 15
   End If

If testhauteur = 1 Then
For ligne = 38 To 20 Step -1
If Cells(ligne, 1).RowHeight > 0 And Cells(ligne, 1).Value = "" And compte = 0 Then
    Cells(ligne, 1).RowHeight = 0
    compte = 1
    End If
Next ligne
If ligne = 0 Then MsgBox "La facture dépasse 1 page"
End If

If testhauteur = -1 Then
For ligne = 38 To 20 Step -1
If Cells(ligne, 1).RowHeight = 0 And compte = 0 Then
    Cells(ligne, 1).RowHeight = 15
    compte = 1
    End If
Next ligne
End If

End If

en déclarant bien sûr les nouvelles variables (compte, ligne et testhauteur)

Il y a surement moyen d'améliorer...

mikachu
 

RONIBO

XLDnaute Impliqué
Re : Suppression de ligne

Bonjour le fil, le forum,

Merci à vous deux pour vos solutions ;)

Je pense que je vais me pencher sur la macro de Mikachu

Ta solution est plutôt pas mal, c'est une bonne idée de masquer les lignes.

Par contre lorsque une ligne s'efface le trait du bas disparais aussi, tu as une solution à ça?
a+
 

RONIBO

XLDnaute Impliqué
Re : Suppression de ligne

Bien joué ;)

Par contre j'ai voulu supprimer la colonne Reserve car aucune utilité

J'crois j'ai tout bousillé :(
 

Pièces jointes

  • Facture N° -  ().xlsm
    34.5 KB · Affichages: 35
  • Facture N° -  ().xlsm
    34.5 KB · Affichages: 38
  • Facture N° -  ().xlsm
    34.5 KB · Affichages: 40

RONIBO

XLDnaute Impliqué
Re : Suppression de ligne

Bonsoir,

J'ai résolu mon problème :)

J'ai fusionné la colonne réserve avc la colonne désignation :)

Une question j'ai vu que tu as mis un msgbox, a quel moment il s'affiche, je l'ai jamais eu même avc la feuille pleine s)
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal