Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Pourquoi cette macro fontionne et pas l'autre ?

  • Initiateur de la discussion Initiateur de la discussion nat07
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

N

nat07

Guest
Bonsoir à tous, Pourquoi cette macro fonctionne bien ?

For Each ligne In ActiveSheet.UsedRange.Rows
If ligne.Cells(1, 12).Value = Empty Then
'si la cellule de la colonne L est vide, la ligne est masquée
ligne.EntireRow.Hidden = True
End If
Next
Range("A2").Select
End Sub

Et si je change le ligne.EntireRow.hidden = true
par
un ligne.EntireRow.delete = true

ça me mets un message d'erreur ?????
 
Re : Pourquoi cette macro fontionne et pas l'autre ?

Bonsoir Nat07,

Et si je change le --->> ligne.EntireRow.hidden = true (cette ligne est masquer mais pas supprimer)
par
un --->> ligne.EntireRow.delete = true (cette ligne est supprimer)

True = vrais (execute la procédure) et false = faut (n'exécute pas la procédure)

avec cela ca devrais fonctionner

Sub testDelete()
For Each ligne In ActiveSheet.UsedRange.Rows
If ligne.Cells(1, 12).Value = Empty Then
'si la cellule de la colonne L est vide, la ligne est masquée
Rows(ligne.Row).Delete
End If
Next
Range("A2").Select
End Sub

Laurent
 
Dernière édition:
Re : Pourquoi cette macro fontionne et pas l'autre ?

Bonsoir nat07,

Peut-être ce code-ci fonctionnera-t-il
VB:
Sub essai()
    Dim ligne
    For ligne = Cells(65536, 12).End(xlUp).Row To 1 Step -1
        If IsEmpty(Cells(ligne, 12)) Then Cells(ligne, 1).EntireRow.Delete
    Next
    Range("A2").Select
End Sub

A+
 
Re : Pourquoi cette macro fontionne et pas l'autre ?

merci pour ta réponse si rapide, ni l'un ni l'autre fonctionne...grrrrrrrrrrrrr j'en ais un peu marre de ramé pour ça.....j'y comprend pas grand chose, j'arrive juste à assembler des macros pour arriver à ce que je voudrais mais là je but sur ça et les MAJUSCULES

bref, reprennons : le (i) il faut que je le mette comme cela = ligne.EntireRow(i).delete = true ????

cette phrase veut bien dire qu'il supprime la ligne entiere ???
 
Re : Pourquoi cette macro fontionne et pas l'autre ?

Re-bonsoir,

Ta syntaxe n'est pas bonne. La bonne est celle de mon code, c'est à dire :
VB:
ligne.EntireRow.Delete
Il ne faut pas mettre de = True derrière.

Mais : ton code ne peut pas fonctionner car ta variable ligne contient un n° de ligne et dans la syntaxe ci-dessus, il faut un objet de type Range. d'où le Cells(ligne, 1).

En outre, si tu pars de la 1° ligne et que tu les supprimes en allant vers la dernière, tu vas te retrouver avec un décalage, car en supprimant la ligne 12 par exemple, la n° 13 va devenir la 12 et ton code va incrémenter de 1 ton n° ligne. De ce fait, tu ne supprimeras correctement que la 1° ligne remplissant ta condition.

Le mieux est de poster un fichier exemple comme cela est spécifié dans Lien supprimé et tu verras que la solution que nous te proposerons devrait fonctionner

A+
 
Re : Pourquoi cette macro fontionne et pas l'autre ?

Bonjour,

En dernière ligne de ta macro MISE-EN_PLACE_TAB, juste avant le End Sub, tapes cette instruction :
VB:
Call suppr

Ensuite, ,tu rajoutes cette macro :
VB:
Sub suppr()
    Dim ligne
    For ligne = Cells(65536, 2).End(xlUp).Row To 1 Step -1
        If IsEmpty(Cells(ligne, 2)) Then Cells(ligne, 1).EntireRow.Delete
        Cells(ligne, 3) = UCase(Cells(ligne, 3))
        Cells(ligne, 12) = UCase(Cells(ligne, 3))
        Cells(ligne, 13) = UCase(Cells(ligne, 3))
    Next
    Range("A2").Select
End Sub

Et le tour est joué.

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
735
Réponses
8
Affichages
785
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…