Suppression Interligne

t70527t@yahoo.fr

XLDnaute Nouveau
Bonjour à Tous

Nouveau projet…. mais toujours des problèmes de suppression de ligne.

Voila sur une feuille pour des raisons de présentation j’ai une ligne avec des informations et dessous une ligne vide (voir Fichier joint).

Dans le projet les utilisateurs doivent supprimer les lignes via une Listbox à choix multiple.
Pour éviter un amoncèlement de lignes vide j’ai créé plusieurs macros
1- je supprime par une macro à l’ouverture du classeur ces lignes vides (cela prend beaucoup de temps)
2- L’utilisateur fait sa sélection
3- Quand l’utilisateur sort du projet par une macro intercale des lignes vides

Je voudrai savoir si c’est possible quand l’utilisateur supprime une ou des lignes via la ListBox que la ligne vide positionnée dessous ou dessus soit supprimé en même temps afin d’éviter les temps de suppression et d’insertion de ces lignes vides.


Merci pour votre Aide
Cordialement
 

Pièces jointes

  • test interligne.zip
    30.8 KB · Affichages: 55

Papou-net

XLDnaute Barbatruc
Re : Suppression Interligne

Bonjour thierry,

Ton code ne fonctionne pas sur mon poste (il manque plusieurs éléments), mais après mûre réflexion je te propose de le modifier comme suit :

Code:
Private Sub CommandButton3_Click()
Dim i As Integer
Dim Plage As Range
Dim Ligne As Range
Dim lig As Range
Dim Lignes As Range
Dim Lignes1 As Range
Dim c As Range
Dim adr1 As String
    With Worksheets("Powers-P")                                                    '--Début de la recherche des items cochés dans la ListBox1--
    
    Set Plage = .Range("C16:C" & .Range("C" & .Rows.Count).End(xlUp).Row)
    End With

    With UserForm1.ListBox1
          For i = 0 To .ListCount - 1
            If .Selected(i) Then
                Set c = Plage.Find(.List(i), LookIn:=xlValues, lookat:=xlWhole, searchorder:=xlByRows)
                If Not c Is Nothing Then
                    adr1 = c.Address
                    Do
                        If Ligne Is Nothing Then Set Ligne = c Else Set Ligne = Union(Ligne, c)
                        Set c = Plage.FindNext(c)
                    Loop While Not c Is Nothing And c.Address <> adr1
                End If
            End If
        Next i
    End With                                                                        '--Fin de la recherche des items cochés dans la ListBox1--
    If Not Ligne Is Nothing Then
[B][COLOR="RoyalBlue"]       Range("A" & ligne.Row & ":A" & ligne.Row + 1).EntireRow.Delete[/COLOR][/B]
       Call tyty
      
       '--Suppression des lignes dans la feuille et de l'Item dans de la ListBox--
        
       'UserForm2.CommandButton1.Visible = False                                     '--Masque le bouton suppression de la feuille "POWERS-P6" dans l'UserForm2--
    End If

Ainsi, la ligne sélectionnée et la ligne du dessous seront-elles effacées en une seule opération.

Espérant avoir répondu.

Cordialement.
 

chris

XLDnaute Barbatruc
Re : Suppression Interligne

Bonjour

L'exercice est intéressant mais honnêtement est-ce bien raisonnable de s'embêter à mettre ou ôter des interlignes qui enlèvent toute possibilité de trier, filtrer, et mille autres choses, pour un poil de cosmétique ?

Je sais, les goûts et les couleurs, ça ne se discute pas, mais perdre 95% des facilités d'Excel ... je trouve ça dommage.

J'ai dû abuser du kawa...
 

mutzik

XLDnaute Barbatruc
Re : Suppression Interligne

bonjour à tous,

j'allais faire pil poil la même remarque que Chris
- des lignes vides pour égayer la présentation d'un formulaire de saisie comme tu l'as fait ligne 1 à 12, mais sinon :
- une feuille avec uniquement les données (une colonne par item / champ, ce qui permet de faire des calculs, des tris, des filtres ...)
- une feuille avec les résultats, les boutons ... et tout ce qui va bien avec l'appli

tout le reste ne sera qu'une source d'emm... tout au long de la vie de ce classeur, crois-en notre bonne vielle expérience
 

Papou-net

XLDnaute Barbatruc
Re : Suppression Interligne

Bonjour le Forum,

Chris, Mutzik,

Vous avez parfaitement raison de vos conseils avisés.

Une solution élégante pour "simuler" une ligne vide est d'augmenter la hauteur des lignes et d'ajuster l'alignement vertical sur le haut, le milieu ou le bas des cellules.

Cordialement.
 

mutzik

XLDnaute Barbatruc
Re : Suppression Interligne

re,
Papounet,
pourquoi simuler une ligne vide, une feuille de données doit rester une feuille de données, la mise en forme de l'impression devant se faire sur la feuille de sortie (ou autre)
mais bon, ces remarques n'engagent que moi (et je suis d'accord avec moi-même, c'est vous dire ... lol)
 

Papou-net

XLDnaute Barbatruc
Re : Suppression Interligne

Re mutzik,

Quand je dis simuler, je veux bien dire simuler : la ligne vide n'existe pas, la méthode que je préconise est uniquement d'aérer le tableau à l'écran. Celà ne change en rien l'agencement du tableau qui ne comporte pas de ligne vide entre chaque ligne de donnée, ce qui rejoint bien ta "philosophie Excel".

Cordialement.
 

t70527t@yahoo.fr

XLDnaute Nouveau
Re : Suppression Interligne

Bonjour à Tous

Merci de vos avis; effectivement j'ai supprimé les interlignes et augmenté la taille des lignes et c'est beaucoup mieux, visuellement et pour faire les tries.

Donc Fil résolu.


Merci à tous de votre aide et conseil. ;)
Bonnes fêtes de Noël et meilleurs vœux pour L'année 2010.:)
Cordialement
 

Discussions similaires

Réponses
25
Affichages
779

Membres actuellement en ligne

Statistiques des forums

Discussions
312 505
Messages
2 089 071
Membres
104 020
dernier inscrit
Mzghal