RÉSOLU Effacer ligne vide

Marie-Claire

XLDnaute Junior
Bonjour à tous,

Voici un fichier pour lequel il y a deux onglets. Si on regarde dans le deuxième onglet il y a une formule qui dit que si la colonne B du premier onglet se situe entre deux date donné inscrire le nom de la colonne A du premier onglet dans la colonne A du deuxième onglet. Mais le problème c'est que j'aimerais que le nom qui s'écrit dans la colonne A du deuxième onglet ne laisse pas de ligne entre eux, mais qu'il s'inscrive un à la suite de l'autre.

Car dans le fichier d'origine j'ai environ 1000 enregistrement....

Merci pour votre aide.
 

Pièces jointes

  • Marie(1).xls
    7 KB · Affichages: 36
  • Marie(1).xls
    7 KB · Affichages: 40
  • Marie(1).xls
    7 KB · Affichages: 38
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : Effacer ligne vide

Bonjour Marie-Claire,

Pas certain d'avoir tout compris, mais, dans un cas comme celui-ci, tu as le choix entre:
- utiliser en Feuil1, une colonne supplémentaire pour "marquer" les enregistrements qui t'intéressent (la formule en Feuil2 s'en trouvera simplifiée!)
- utiliser une formule matricielle en Feuil2 (un peu plus difficile à comprendre et gourmande en ressources, si tu as de grandes plages à explorer)
- une macro qui, chaque fois que tu actives la Feuil2, réactualise la liste (auquel cas, il te faudra t'intéresser de près au langage VBA, pour pouvoir adapter, par la suite)

Aurais-tu une préférence? :D

PS: dans tous les cas de figure, pense à préciser ce que tu voudrais clairement obtenir avec tes 2 conditions de date: Ces dates seront fixes, correspondront à une plage comprise entre aujourd'hui-2 et aujourd'hui+3 ou entre aujourd'hui et aujourd'hui+5 :confused:
 

Marie-Claire

XLDnaute Junior
Re : Effacer ligne vide

Bonjour Yohan,

Tu as bien compris ma question... Cela fonctionne. Mais est-ce que c'est compliqué à faire pour que je puisse le reproduire à mon fichier? J'aimerais juste dire que j'ai ajouté une colonne dans la Feuil2 qui répète la date de la colone B de la feuil1, car mon fichier original est fait ainsi.

Aussi, j'ai remarqué que je ne peux ajouté ou supprimer des lignes dans la feuil1, sinon cela ne fonctionne pas.... et j'ai également des filtres dans les deux feuilles, donc si je met un filtre à la Feuil2 et que la page s'actualise le filtre disparait...hihihi

Merci infiniment... :)
 

Pièces jointes

  • Marie2.xlsm
    15 KB · Affichages: 33
  • Marie2.xlsm
    15 KB · Affichages: 35
  • Marie2.xlsm
    15 KB · Affichages: 38

Yohan

XLDnaute Occasionnel
Re : Effacer ligne vide

Normalement ce n'est pas difficile à reproduire sur ton fichier
Je t'explique le principe : c'est un petit code sur VBA qui si la ligne est vide cela la masque si elle est remplie d'une valeur alors elle s'affiche. Il fait cela dès que tu vas sur la feuille "Retour Marie"
Si tu rajoute des ligne cela ne pose pas de problème il faut simplement une toute petit modification s'impose il faut me dire en gros combien de ligne tu veux masquer jusqu'où vont tes enregistrements

Pour le filtre il faudrait nous dire si tu travail sur excel 2003 ou excel 2007-2010
 

Marie-Claire

XLDnaute Junior
Re : Effacer ligne vide

Allo Yohan,

Merci pour ton aide, j'ai réussi à reproduire la micro à mon fichier et trouver la solution pour les filtre (au lieu de partir à 1 la macro je l'ai partie à 10 après mes entêtes et mon filtre ).

Donc, tout ce qu'il me reste à réaliser est lorsque je veux insérer une ligne entre deux ou supprimer une ligne dans ma feuil1. Si j'insère une ligne et que j'y inscrit les donnée, elle n'apparait pas dans la feuil2.

Dans mon fichier Feuil1, je pourrais atteindre 1000 lignes au total. J'ai Excel 2003
 

romain9

XLDnaute Nouveau
Re : Effacer ligne vide

Bonsoir,

J'arrive un peu tard mais au cas où cela vous intéresserait, j'ai mis, dans le classeur ci-joint, une formule matricielle pour résoudre votre problème.

Cordialement.
 

Pièces jointes

  • Marie(1).xls
    18 KB · Affichages: 38
  • Marie(1).xls
    18 KB · Affichages: 40
  • Marie(1).xls
    18 KB · Affichages: 38

Marie-Claire

XLDnaute Junior
Re : Effacer ligne vide

Merci Romain pour ton aide, mais je ne peux insérer de ligne sans que les formule ne change... Je suis désolé

Yohan, nous sommes très près du but... Je peux maintenant insérer des lignes super :))). Mais si je supprime Sylvie par exemple, Nathalie se met 2 fois et si je supprime Jean, Nathalie se met trois fois hihihi oufff pas facile.
 

romain9

XLDnaute Nouveau
Re : Effacer ligne vide

J'ai corrigé le problème, maintenant vous pouvez insérer des lignes sans que la formule soit modifiée.

Cordialement.
 

Pièces jointes

  • Marie(1).xls
    18 KB · Affichages: 28
  • Marie(1).xls
    18 KB · Affichages: 34
  • Marie(1).xls
    18 KB · Affichages: 36

Marie-Claire

XLDnaute Junior
Re : Effacer ligne vide

Bonjour Yohan,

Cela fontionne effectivement dans ton fichier, mais ho la la c'est tout autre chose lorsque je colle ta macro dans le mien lolll....

Voici ta macro :

Private Sub Worksheet_Activate()
Dim ligne As Long
ligne = Worksheets("Marie").Range("A6000").End(xlUp).Row
Range("A3:B" & ligne).Delete Shift:=xlUp
Rows("1:" & ligne).EntireRow.Hidden = False
Range("A2").Select
Selection.AutoFill Destination:=Range("A2:A" & ligne), Type:=xlFillDefault
Range("A2:A" & ligne).Select
Range("B2").Select
Selection.AutoFill Destination:=Range("B2:B" & ligne), Type:=xlFillDefault
Range("B2:B" & ligne).Select
For i = 1 To ligne
If Range("A" & i).Text = "" Then
Rows(i).EntireRow.Hidden = True
Else
Rows(i).EntireRow.Hidden = False
End If
Next i

End Sub


Je comprend que je dois remplacer '' Marie'' par ''Planif'' qui est le nom de mon 1er onglet... Mais ensuite je suis incapable de situer tes nom de cellule :confused:

Dans mon onglet Planif, le premier nom se retrouve à la cellule B3, la 1ère date se retrouve M3, il y a présentement 59 nom mais il pourrait y en avoir jusqu'à 1000.

Dans le deuxième onglet qui s'appelle ''SEM 38'' le premier nom doit se retrouver dans la cellule A10, parconséquent un nom pourrait se retrouver sur la 867e ligne la raison pour laquelle je veux masquer des lignes (un peu long parcontre d'attendre la macro pour 1000 lignes mais je vais vivre avec).

Donc par quoi je dois remplacer tes cellule (A1-A2-B2)... Je suis assez débutante avec les macro, mais sache que j'apprécie vraiment beacoup ta précieuse aide...

Merci !
 

Yohan

XLDnaute Occasionnel
Re : Effacer ligne vide

salut donc première truc tape
application.screenupdating = false
juste après le dim ligne as long
cela va accelérer la macro et normalement il ne cache plus jusqu'a 1000 mais jusqu'à ligne
ensuite mon fichier prend en compte pour le moment 6000 nom ligne = Worksheets("Marie").Range("A6000").End(xlUp).Row

après si ta première formule est dans ligne 10 dans ton fichier équivalent à retour marie il faut transformer les "A2 en A10 comme tu l'as dit pareil pour les b10 donc tu change juste le
 

Yohan

XLDnaute Occasionnel
Re : Effacer ligne vide

Private Sub Worksheet_Activate()
Dim ligne As Long
application.screenupdating = false
ligne = Worksheets("Planif").Range("A6000").End(xlUp).Row
Range("A11:B" & ligne).Delete Shift:=xlUp
Rows("1:" & ligne).EntireRow.Hidden = False
Range("A10").Select
Selection.AutoFill Destination:=Range("A10:A" & ligne), Type:=xlFillDefault
Range("A10:A" & ligne).Select
Range("B10").Select
Selection.AutoFill Destination:=Range("B10:B" & ligne), Type:=xlFillDefault
Range("B10:B" & ligne).Select
For i = 1 To ligne
If Range("A" & i).Text = "" Then
Rows(i).EntireRow.Hidden = True
Else
Rows(i).EntireRow.Hidden = False
End If
Next i

End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 852
Membres
103 974
dernier inscrit
chmikha