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 !
Je suis tout nouveau sur ce forum, et bien qu'en essayant d'appliquer les macros que je lis sur différents topics, je n'arrive pas à m'en sortir tout seul (surtout que je n'y connais absolument rien en vba 😀 ).
Je dispose d'un fichier Excel contenant 2 onglets: le premier sert de base de données, le second sert de matrice de bon de commande.
Pour le bon de commande, je souhaite bien cacher les lignes si le nombre de données relevées sur le premier onglet est nul (valeur 0). Je souhaite également faire en sorte que le sous-total soit systématiquement placé en bas de page, ou en pied de page. En effet, le nombre de ligne varie en fonction des fournisseurs, donc le nombre de pages également.
Re : Cacher des lignes si valeur 0 et insérer calcul en pied de page
Bonjour tout le monde,
Merci DoubleZero pour ta proposition.
1) Concernant la possibilité de cacher les lignes pour les données égalent à 0:
J'ai bien regardé ton fichier, et je m'aperçois qu'en fait l'actualisation des données ne peut pas se faire automatiquement: il faut cliquer sur le bouton Masquer ou Afficher dans le bon de commande. Dans ma démarche initiale, je souhaitais en fait automatiser ce process, et verrouiller l'onglet bon de commande pour éviter toute modification extérieure.
Donc:
=> l'actualisation automatique de cette requête est-elle possible?
=> sinon, peut-on déplacer les boutons associés à la macro sur l'autre onglet (base de données) pour lancer l'actualisation?
J'ai également remarqué que l'actualisation des données était assez longue à obtenir, peut-être est-ce du au fait que la macro travaille sur l'ensemble de la feuille et non une zone sélectionnée?
2) Concernant le sous-total en pied de page:
Je n'ai pas assez précisé ma demande, j'en suis désolé. Je souhaite en fait que ce total se retrouve en bas de mon bon de commande à l'édition, indépendamment du nombre de page que fait ce bon de commande. En fait, comme pour un bon de commande classique: la dernière page contient le récapitulatif des valeurs...
J'espère avoir été plus clair dans mes propos.
Merci en tout cas pour vos idées, ça fait plaisir quand on n'y connait rien et que l'on se sent un peu perdu 🙂
Les lignes ne sont plus masquées mais supprimées, évitant ainsi la présence de deux bordures verticales tout en haut de la page n° 2, comme auparavant.
VB:
Sub Bon_de_commande_créer()
Dim nom As Object
With Application
.ScreenUpdating = 0
.Calculation = xlCalculationManual
End With
Sheets("BDC fournisseur").Select
Sheets("BDC fournisseur").Copy After:=Sheets(2)
ActiveSheet.Name = Range("g8").Value
ActiveSheet.Tab.ColorIndex = 4
For n = Range("h65536").End(xlUp).Row To 18 Step -1
If Range("h" & n) = 0 Or Range("h" & n) = "" Then Rows(n).Delete
Next n
Range("az1") = "Montant HT"
Range("az2") = "Valeur TVA"
Range("az3") = "Montant TTC"
Range("ba1") = "=SUM(total)"
Range("ba2") = "19.6"
Range("ba2").NumberFormat = "0.00"
Range("ba3") = "=R[-2]C+(R[-2]C*(R[-1]C/100))"
Range("BA1,BA3").Style = "Currency"
With Range("AZ1:BA3")
.Value = Range("AZ1:BA3").Value
.Font.Bold = 1
.Font.Size = 12
.Borders.Weight = 3
.Borders(xlInsideVertical).LineStyle = 0
.Borders(xlInsideHorizontal).LineStyle = 0
.Cut Destination:=Range("g65536").End(xlUp)(3)
End With
With Range("B18").CurrentRegion
.Borders(xlEdgeLeft).Weight = xlMedium
.Borders(xlEdgeTop).Weight = xlMedium
.Borders(xlEdgeBottom).Weight = xlMedium
.Borders(xlEdgeRight).Weight = xlMedium
.Borders(xlInsideVertical).Weight = xlThin
.Borders(xlInsideHorizontal).Weight = xlThin
End With
Range("b65536").End(xlUp)(2).EntireRow.Delete
ActiveSheet.DrawingObjects.Delete
For Each nom In ActiveSheet.Names
nom.Delete
Next
Sheets("BDC fournisseur").Range("g8").ClearContents
With Application
.ScreenUpdating = 1
.Calculation = xlCalculationAutomatic
End With
End Sub
Ma proposition n'est pas des meilleures, mais... je ne sais faire autrement 😱.
Nota : dans un tableau, les cellules vides réservant de mauvaises surprises, j'ai dû insérer une valeur en C18 !
- 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