Macro pour Hauteur de ligne = 0 si résultat de fonction = " " ?

Résolu/Fermé
bbtronic Messages postés 10 Date d'inscription jeudi 25 juin 2015 Statut Membre Dernière intervention 17 septembre 2015 - 25 juin 2015 à 10:53
bbtronic Messages postés 10 Date d'inscription jeudi 25 juin 2015 Statut Membre Dernière intervention 17 septembre 2015 - 30 juin 2015 à 18:02
Bonjour,
J'ai un fichier avec deux onglets.
Les cellules de 5 colonnes de la feuille du deuxième onglet récupère des infos du premier onglet via des formules placés dans les cellules... elle ne sont donc pas "vide"
Mon problème et que je ne trouve pas la macro pour dire que "si les 4 cellules d'une même ligne entre la ligne 1 et 114 des colonnes A à D restent sans résultat, c'est à dire que l'application de la fonction des cellules est " " ... alors la hauteur de ligne =0
Merci d'avance
Bruno
A voir également:

7 réponses

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
30 juin 2015 à 00:52
Bonsoir le fil, bonsoir le forum,

Pardi ! Gros malin... Tu as mis des espaces (" ") dans tes formules... Donc les cellules contenaient entre 3 et 4 espaces...
Applique la macro ci-dessous au bouton 4 :

Sub Macro1()
Dim EMG As Worksheet
Dim TC As Variant

Application.ScreenUpdating = False
Set EMG = Sheets("EMG")
TC = EMG.Range("A1:D114")
For I = 1 To UBound(TC, 1)
    T = ""
    For J = 1 To UBound(TC, 2)
        T = T & TC(I, J)
    Next J
    If T = "    " Or T = "   " Then EMG.Rows(I).Hidden = True Else EMG.Rows(I).Hidden = False
Next I
Application.ScreenUpdating = True
End Sub

1
bbtronic Messages postés 10 Date d'inscription jeudi 25 juin 2015 Statut Membre Dernière intervention 17 septembre 2015
30 juin 2015 à 18:02
Bonjour à tous,
Maître ThauTheme ! Un grand Bravo et surtout mille fois MERCI .. c'est exactement ce que je cherchais. C'est génial ! Ça marche du tonnerre. EXTRA ! :):):):):)
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
25 juin 2015 à 11:31
Bonjour Bbtronic, bonjour le forum,

Peut-être comme ça :

Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim TC As Variant 'déclare la variable TC (Tableau de Cellules)

Set O = Sheets("Feuil2") 'définit l'onglet O (à adapter)
TC = O.Range("A1:C114") 'définit le tableau de cellules TC
For I = 1 To UBound(TC, 1) 'boucle sur toutes les lignes I du tableau de cellules TC
    'si la somme des 3 valeurs de la ligne I est nulle, masque la ligne, sinon affiche la ligne
    If Application.WorksheetFunction.Sum(Application.Index(TC, I)) = 0 Then O.Rows(I).Hidden = True Else O.Rows(I).Hidden = False
Next I 'prochaine ligne de la boucle
End Sub

0
bbtronic Messages postés 10 Date d'inscription jeudi 25 juin 2015 Statut Membre Dernière intervention 17 septembre 2015
Modifié par pijaku le 25/06/2015 à 13:14
Bonjour et merci pour aide..
La feuille est nommé EMG
La zone de cellule de la feuille EMG est A1:D114
J'ai donc adapté ta macro ainsi:
Sub Macro1()
Dim EMG As Worksheet
Dim TC As Variant

Set EMG = Sheets("EMG")
TC = EMG.Range("A1:D114")
For I = 1 To UBound(TC, 1)
    If Application.WorksheetFunction.Sum(Application.Index(TC, I)) = 0 Then EMG.Rows(I).Hidden = True Else EMG.Rows(I).Hidden = False
Next I
End Sub


MAIS ça ne marche pas et coince au niveau de la ligne 'If appli...etc
Je ne sais pas pourquoi
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
25 juin 2015 à 15:08
Bonjour Bbtronic, bonjour le forum,

Tu as bien adapté le code pourtant. Je ne sais pas non plus. Les tests que j'avais fait chez moi sur deux lignes à peine fonctionnaient correctement...
Peut-être un problème de références (menu : Outil/Références...) dans VBA. Regarde les références que j'ai et compare :



0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
25 juin 2015 à 15:15
Bonjour tout le monde,
ThauTheme, mes respects de l'après midi.

Peut être une erreur dûe à ... une erreur (#N/A, #VALEUR, #DIV/0) dans une des cellules de la plage.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
25 juin 2015 à 15:37
Bonjour le fil, bonjour le forum,

Mes respect itou Pijaku !

je navet (dans ce cas on peut) pas pensé à cela. Dis-nous si c'est le cas et j'essaierai de trouver une solution...
0
bbtronic Messages postés 10 Date d'inscription jeudi 25 juin 2015 Statut Membre Dernière intervention 17 septembre 2015
25 juin 2015 à 17:17
Re-salut Thautheme, et merci a pijaku de s'intéresser à mon problème,
pijaku:
L'ensemble des cellules A1:D114 ont été testées et affiche bien l'info de la feuille 1 via la formule... donc pas de cellule erreur.
Thautheme:
je suis sur Miscrosoft Excel 2010 et d'une part je ne sais pas où trouver ton info "références - VBAProject", d'autre part que faut-il faire?
En tout cas, notez que je n'ai absolument pas votre niveau et qu'être le plus scolaire possible m'aidera grandement..:):)
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
25 juin 2015 à 17:24
Bonjour le fil, bonjour le forum,

À vrai dire c'est pas trop mon truc aussi les références. Toutefois, il m'est arrivé de devoir en charger pour faire fonctionner un code. Il faut ouvrir VBE (Visual Basic Editor) avec le raccourci [Alt]+[F11]. Là, tu fais menu Outil/Références. Tu compares avec celles que j'ai cochées. Si il t'en manque, tu les cherches dans la liste et tu les coches...
0
bbtronic Messages postés 10 Date d'inscription jeudi 25 juin 2015 Statut Membre Dernière intervention 17 septembre 2015
25 juin 2015 à 18:42
J'ai bien réussi a aller dans Outil/références mais il y a une ligne que je ne trouve pas..
C'est "Microsoft Forms 2.0 Object Library"... Elle ne figure pas dans la liste
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744 > bbtronic Messages postés 10 Date d'inscription jeudi 25 juin 2015 Statut Membre Dernière intervention 17 septembre 2015
25 juin 2015 à 19:54
A mon humble avis, il ne s'agit pas de cette référence.
La library Microsoft Forms est utilisée pour les UserForms et leurs contrôles, pas pour les WorkSheetFunction.

Essaie de mixer avec et sans Application et avec et sans WorksheetFunction, pour voir ce qui ne passe pas :
If Application.WorksheetFunction.Sum(Application.WorksheetFunction.Index(TC, I)) = 0

If Application.Sum(Application.Index(TC, I)) = 0


A ce niveau là, sans classeur exemple, on y va à tâtons sur toutes les pistes imaginables...
0
bbtronic Messages postés 10 Date d'inscription jeudi 25 juin 2015 Statut Membre Dernière intervention 17 septembre 2015 > pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024
28 juin 2015 à 22:04
J'étais absent ces derniers temps...
Je vous met a dispo le fichier via ce lien:
https://www.dropbox.com/s/dyyfr0b0blk0haj/RAPPORT%20GENERAL%20b.xlsm?dl=0

Il n'y a qu'un onglet"EMG" mais plus tard j'en rajouterai d'autre (une fois la solution trouvée.
L'idée est qu'en cliquant sur le "bouton 4" la hauteur des lignes vides =0
Merci encore
0