supprimer des lignes vide modifiables

loulette07

XLDnaute Junior
Bonjour,
voici mon problème

J'ai 7 feuilles dans un fichier excel.
Je voudrais repporter le tableau de la feuille 1 sur la feuille 2. Et je voudrais que les lignes vides disparaissent automatiquement.

Par contre dès que j'entre une nouvelle donnée au milieu du tableau de la feuille 1, il faut que la ligne réapparaisse automatiquement sur la feuille 2.
Les feuilles comportent environ 1 000 lignes et 10 colonnes le fichier est donc trop lent avec de nouvelles formules
Existe-t-il des fonctions qui me permette de faire cela?
Merci d'avance.
 

nyko283

XLDnaute Occasionnel
Re : supprimer des lignes vide modifiables

Bonsoir Loulette,

un petit fichier d'une dizaine de ligne sur chaque feuille, epurer de toutes données confidentielles nous aiderait afin de pouvoir comparer les structures des feuilles et cela nous evite aussi de recreer un fichier qui ne serait pas le reflet de ton fichier, et donc pas fonctionnelle sur ton document,

en effet, il n'existe pas de fonctions toutes faites (enfin à ma connaissance) qui reconnait la structure et copie des lignes.
 

nyko283

XLDnaute Occasionnel
Re : supprimer des lignes vide modifiables

Bonsoir loulette,

Dans le fichiers joint j'ai mis le code qu'il te faut avec tous les commentaire pour la compréhension,

comme je copie des lignes, tu n'a plus aucune formules sur la feuille pas payer, du coup tu vas gagner un peu, en temps de calcul pour les autres feuilles.

Si tu as besoin de plus d'explications, hesite pas.
 

Pièces jointes

  • Copie de Xl0000063.xls
    263.5 KB · Affichages: 47

nyko283

XLDnaute Occasionnel
Re : supprimer des lignes vide modifiables

Bonjour loulette,

En fait il s'agit de cobe VBA, donc pour voir le code il faut ouvrir l'editeur VBA (Alt+F11), une fenetre va s'ouvrir avec sur la gauche l'explorateur de projet,et toutes les feuilles de ton classeur, les modules, ...

en faisant un double clic sur la feuille 1, tu y trouveras le code d'appel du code principal, en cliquant sur le "+" devant "Modules" tu verras Module1 double clic dessus et la tu verras tout le code avec les commentaires.

si dessous code en question :

Code d'appel qui intervient quand l'une des cellules de la colonne payé est modifié, ajout de caracteres, ou effacement de caractere ou effacement totale du contenu de la cellule.
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' si une cellule de la colonne h dans la feuille donnes est modifié

If Not Intersect(Target, Range("H5:H1005")) Is Nothing Then
Call MajPasPayer ' on appel la procédure dans le module 1
End If
End Sub
code principal qui va copier les lignes où dans la colonnes "H" est vide.
VB:
Sub MajPasPayer()
Application.ScreenUpdating = False ' empeche la mise a jour de l'ecran = rapidite
Sheets("pas payer").Range("A6:J1005").ClearContents ' on efface tout le tableau pas payer
s = 6
For i = 6 To Range("H65536").End(xlUp).Row 'pour toutes les lignes de 6 à la derniere non vide
    If Cells(i, 8) = "" Then ' si la colonne H est vide donc pas payer
    'on copie cette ligne dans le tableau pas payer
    Sheets("donnes").Range("A" & i & ":G" & i).Copy Destination:=Sheets("pas payer").Range("A" & s)
    ' copie la tva
    Sheets("donnes").Range("I" & i & ":K" & i).Copy
    Application.ScreenUpdating = False
    Sheets("pas payer").Range("H" & s).PasteSpecial Paste:=xlPasteValues
    
    s = s + 1
    End If
Next i
Application.ScreenUpdating = True ' remet a jour l'ecran
End Sub
 

loulette07

XLDnaute Junior
Re : supprimer des lignes vide modifiables

bonjour Nicolas

le fichier fonctionne mais il est trop compliqué pour moi de m'en servir pour d'autres fichiers à venir.
je prend note de tes explications tous de même et te remercie d avoir passer du temps pour me rendre service.
A bientôt
 

Discussions similaires

Réponses
4
Affichages
224

Statistiques des forums

Discussions
312 564
Messages
2 089 705
Membres
104 265
dernier inscrit
TofLia