Problème Macro : Supprimer les lignes vides

muzard

XLDnaute Junior
Bonsoir,

Ci-joint un fichier perso me servant à élaborer le bilan des élèves d'une école.
Dans l'onglet "Compétences", je rentre la compétence évaluée ainsi que la note des élèves.
Dans l'onglet "Bilan", j'obtiens le bilan des élèves.
A la fin de la période, j'applique une macro "supprimer les lignes" pour effacer les lignes vides du bilan.
C'est là qu'apparait le problème : les lignes vides sont bien effacées même certaines lignes se multiplient (en général au delà de la dixième) sans que j'arrive à l'expliquer.
Merci par avance à celui qui pourra m'apporter ses lumières.
:)
Muzard
 

Pièces jointes

  • Bulletin P2.xlsm
    90.5 KB · Affichages: 43
Dernière édition:

gosselien

XLDnaute Barbatruc
Re : Problème Macro : Supprimer les lignes vides

Bonjour,

tes cellules A77,B77,C77 et D77 et plus haut, ne sont jamais vides puisqu'il y a une formule dedans...

donc Cells(i, 3).Text = "" Then est toujours faux :)

tu peux essayer ceci=

Sub LigneMoins()
For R = 78 To 8 Step -1
If Len(Cells(R, 3)) = 1 Then Rows(R).Delete
Next R
ActiveSheet.UsedRange
End Sub


P.
 
Dernière édition:

muzard

XLDnaute Junior
Re : Problème Macro : Supprimer les lignes vides

Bonjour,

tes cellules A77,B77,C77 et D77 et plus haut, ne sont jamais vides puisqu'il y a une formule dedans...

donc Cells(i, 3).Text = "" Then est toujours faux :)

tu peux essayer ceci=

Sub LigneMoins()
For R = 78 To 8 Step -1
If Len(Cells(R, 3)) = 1 Then Rows(R).Delete
Next R
ActiveSheet.UsedRange
End Sub


P.

Merci beaucoup, cela marche un peu mieux.
Mais dès que j'ai plus de 12 compétences, le problème revient.
Il supprime les lignes vides mais me remplace les compétences supérieures à douze par la douzième.
 

muzard

XLDnaute Junior
Re : Problème Macro : Supprimer les lignes vides

ben, remets nous un exemple :)

Le même fichier avec un changement de macro comme prescrit.
Les compétences D13, D14 disparaisse et D12 sont répétés plusieurs fois quand j'applique la macro.
Merci :confused:
 

Pièces jointes

  • Bulletin P3.xlsm
    91.1 KB · Affichages: 28
  • Bulletin P3.xlsm
    91.1 KB · Affichages: 44
  • Bulletin P3.xlsm
    91.1 KB · Affichages: 28

gosselien

XLDnaute Barbatruc
Re : Problème Macro : Supprimer les lignes vides

ici ça ce passe bien, toutes les lignes sans A-B-C ou D disparaissent entre 79 et 8...

Sub Supprimer_les_lignes()
Sheets("bilan").Activate
Application.ScreenUpdating = False
For R = 79 To 8 Step -1
If Len(Cells(R, 3)) = 1 Then Rows(R).Delete
Next R
ActiveSheet.UsedRange
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : Problème Macro : Supprimer les lignes vides

Bonjour à tous


Une autre façon de faire sans passer par une boucle.
(si j'ai bien compris la problématique)
Code:
Sub SupprimerLignesVidesBIS()
With Range("E8:E77")
  .FormulaR1C1 = "=IF(RC[-2]=0,1,""X"")"
  .SpecialCells(-4123, 1).EntireRow.Delete
  .Value = Empty
End With
End Sub
 

muzard

XLDnaute Junior
Re : Problème Macro : Supprimer les lignes vides

Bonjour à tous


Une autre façon de faire sans passer par une boucle.
(si j'ai bien compris la problématique)
Code:
Sub SupprimerLignesVidesBIS()
With Range("E8:E77")
  .FormulaR1C1 = "=IF(RC[-2]=0,1,""X"")"
  .SpecialCells(-4123, 1).EntireRow.Delete
  .Value = Empty
End With
End Sub

Merci pour vos propositions.
Oui, effectivement, chez moi aussi, toutes les lignes vides disparaissent.
Il reste seulement les lignes avec les A,B,C et D.
Par contre, ligne 70&71 (onglets Bilan), les compétences D13 et D14 sont remplacées par D12 (chez moi) quand j'applique vos macros.
Pourquoi ? :confused:
 

Staple1600

XLDnaute Barbatruc
Re : Problème Macro : Supprimer les lignes vides

Re


Et comme cela c'est mieux ?
Code:
Sub SupprimerOuPresqueLesLignesVides()
With Range("E8:E77")
  .FormulaR1C1 = "=IF(RC[-2]=0,1,""X"")"
  .SpecialCells(-4123, 1).Rows.Hidden = True
  .Value = Empty
End With
End Sub
 

muzard

XLDnaute Junior
Re : Problème Macro : Supprimer les lignes vides

Re


Et comme cela c'est mieux ?
Code:
Sub SupprimerOuPresqueLesLignesVides()
With Range("E8:E77")
  .FormulaR1C1 = "=IF(RC[-2]=0,1,""X"")"
  .SpecialCells(-4123, 1).Rows.Hidden = True
  .Value = Empty
End With
End Sub

Yes, yes, yes... :)
Cela fonctionne sur le fichier exemple.
J'essaye à présent sur mon fichier original (en renommant le pessimisme de cette la macro :)) et revient vers vous.
Merci.............
 

Staple1600

XLDnaute Barbatruc
Re : Problème Macro : Supprimer les lignes vides

Re

Muzard
Pour infos
Ce n'était pas du pessimisme mais du pragmatisme, car ma macro ne supprime pas les lignes mais les masque...:rolleyes:
(Rows.Hidden=True)
Donc le nom SupprimerOuPresqueLesLignesVides est à mon sens approprié ;)
 

muzard

XLDnaute Junior
Re : Problème Macro : Supprimer les lignes vides

Bonsoir Staple1600,

Je me permets de te contacter à nouveau car la deuxième macro de mon fichier ne fonctionne plus.
La macro "Bouton12_cliquer" me permet d'imprimer tous mes bilans en une seule fois.
Je voudrais que cette macro prenne en compte les élèves présents dans la liste déroulante en C3 (onglet bilan).
Mais quand je l'exécute, elle m'imprime plus d'une trentaine de bilans. Comment la faire arrêter lorsque la liste ne contient plus d'élèves.
Merci par avance. :confused:
 

Pièces jointes

  • Bulletin P3.xlsm
    91.1 KB · Affichages: 19
  • Bulletin P3.xlsm
    91.1 KB · Affichages: 27
  • Bulletin P3.xlsm
    91.1 KB · Affichages: 30

Discussions similaires

Statistiques des forums

Discussions
312 429
Messages
2 088 350
Membres
103 823
dernier inscrit
ben talha redouane