Forum Replies Created
-
AuthorPosts
-
Francis Paquet
ParticipantBonjour,
Cette situation a été créée parce que vous avez activé le complément Analysis Toolpak. En effet, c’est bien documenté chez Microsoft que, pour d’obscures raisons, cela ajoute le fichier Funcres.xlam dans les projets VBA. Il n’est pas clair si cela affecte toutes les versions d’Excel, mais mon expérience me dit que oui.
Francis
Francis Paquet
ParticipantBonjour,
Ce problème se résoud avec une valeur-cible, nul besoin de passer par le solveur. En effet, si vous posez
Tan(1,05 * Xc) – (16-(Xc+5)^2)^0.5 = 0 et que vous utilisez la valeur cible pour Xc, vous obtenez
Xc=-1,86111Voilà,
Francis
Francis Paquet
ParticipantBonjour,
Votre macro VBA doit boucler sur l’ensemble des feuilles. Considérer une structure du genre
Sub TraiteFeuilles
Dim sh as Worksheet
For each sh in WorkSheets
‘ Ici, insérez vos commandes avec l’objet sh.Sous-Objet.Méthode
Next shEnd Sub
Voilà,
Francis Paquet
ParticipantBonjour,
Le calcul est effectivement fait par la variation des inventaires, ce qui est juste.
Si vous voulez tenir en compte les conditions de paiement sur les achats d’items qui vont en inventaire, je vous invite à modéliser le tout dans les comptes à payer.
Merci,
Francis
13 April 2018 at 15 h 11 min in reply to: Formule dans l’onglet CAPEX du modèle de prévisions financières #42603Francis Paquet
ParticipantBonjour,
Voici ma façon de décortiquer cette formule.
=IF($G33=0;
Effectivement, ce premier test permet de voir si l’amortissement est linéaire ou dégressif à taux constant.
IF($H33=0;0;
Si ce deuxième test est vrai, donc le bien n’est pas amortissable et on inscrit 0. Sinon, on fait le calcul, dans le présent cas, de l’amortissement dégressif :
SUMIF($J$6:$N$6;AO$7;$J15:$N15)*$H33/12+
La première partie de la formule s’occupe du solde d’ouverture.
IF(AO87=0;0;SUMIF($J$6:$N$6;AO$7;$J33:$N33)/2*$H33/SUMIF($J$6:$N$6;AO$7;$J87:$N87)));
La deuxième partie s’occupe de l’investissement durant l’année en cours. Cette formule évite de prendre de l’amortissement si l’investissement n’a pas encore eu lieu – IF(AO87=0;0;. Et elle répartit le montant sur le nombre de mois où il y a eu de l’investissement – /SUMIF($J$6:$N$6;AO$7;$J87:$N87). Le fait de diviser par deux est là afin de tenir en compte la règle de demi-année. Au Canada, la première année, le contribuable n’a droit qu’à 50% du montant total.Ces formules, pour leur part, s’occupent de l’amortissement linéaire.
SUM(OFFSET(AO33;0;0;1;- MIN($G33;AO$9)))/$G33
La première partie considère les nouveaux investissements faits à date.
+IF($AM69=0;0;IF(AO$9<=$AM69;$AN69/$AM69;0)))
La deuxième partie s’occupe de l’amortissement des soldes d’ouverture. Ces soldes incluent un estimé du nombre de mois restants pour fins d’amortissement.Merci,
Francis
21 February 2018 at 8 h 42 min in reply to: Contrôler plusieurs tableaux croisés dynamiques avec un seul menu déroulant #40697Francis Paquet
ParticipantBonjour,
J’ai examiné ton fichier et ton code proposé et je l’ai corrigé et il fonctionne. Quand on manipule des éléments comme des TCD, on doit correctement utilisé les noms des étiquettes. C’est ce qui ne fonctionnait pas! J’ai simplement copié les étiquettes de la feuille TCD dans le code VBA, aux différents endroits, et cela fonctionne.
Bonne journée,
Francis
Attachments:
You must be logged in to view attached files.Francis Paquet
ParticipantAvez-vous vraiment besoin de modifier la propriété Refresh de cet objet? Si la commande bloque dans cette configuration, enlevez cette ligne de commande.
Francis
Francis Paquet
ParticipantBonsoir,
Des boutons ActiveX différents, un sur chaque feuille, peuvent être tous liés à la même macro VBA sans aucun problème…
Francis Paquet
ParticipantBonjour,
Vous ne devriez avoir qu’une seule procédure dans un module.
Quand vous êtes dans la feuille A, que vous appuyez sur le bouton Imprimer dans cette feuille et que la macro contient du code qui réfère à la feuille active, le code ne va s’exécuter que pour la feuille active…
Le bouton dans chaque feuille peut appeler toujours la même macro qui est dans un module général, c’est aussi simple que ça.
Francis
Francis Paquet
ParticipantBonsoir,
Désolé du délai de réponse, mais j’étais à l’extérieur. Je en crois pas que cela puisse se faire sans VBA (c’est très facile à faire en VBA…). Indiquer le nome de la feuille à la cellule F45, ça se fait bien en Excel. Indiquer le nom de la feuille précédente dans la cellule G45, ça, ça demande du VBA…
Francis
Francis Paquet
ParticipantBonjour,
Il est difficile de faire mieux. Vous pourriez toutefois tenter une commande comme
IF Sheets(i).Visible <> xlSheetVisible THEN Sheets(i).Visible = xlSheetVisible
Cela sauverait un peu de CPU…
Francis
Francis Paquet
ParticipantBonjour,
Le code devrait être, tout simplement:
Pour masquer les onglets pairsSub MasquerPair() Dim i As Integer For i = 4 To Sheets.Count If i Mod 2 = 0 Then ' C'est un index pair Sheets(i).Visible = xlSheetHidden End If Next i End Sub
Pour les onglets impair faire le IF i mod 2 = 1 then
Pour démasquer, votre approche est bonne.Francis
Francis Paquet
ParticipantBonjour,
Je vous propose le code VBA suivant (pour sélectionner les onglets pairs au dessus de 3):
Sub SelectPair() Dim i As Integer, iCount As Integer Dim strSheetSelected() As String For i = 4 To Sheets.Count If i Mod 2 = 0 Then ' C'est un index pair If Sheets(i).Visible = xlSheetVisible Then ReDim Preserve strSheetSelected(iCount) strSheetSelected(iCount) = Sheets(i).Name iCount = iCount + 1 End If End If Next i Sheets(strSheetSelected).Select End Sub
Pour les onglets impairs changer la condition pour IF i Mod 2 = 1 then.
Pour tous les onglets, enlever le premier IF (IF i Mod 2 = 0 then).Voilà,
Francis
5 February 2017 at 11 h 27 min in reply to: Segment et éléments supprimés de la source de données #33629Francis Paquet
ParticipantPascal,
Selon moi, cette situation peut être solutionnée en utilisant les bons paramètres de votre tableau croisé dynamique (TCD).
Par exemple, allez dans les options du TCD, dans la sous-section Données. Vous avez là, en anglais, une section qui se nomme Retain items deleted from the data source et il y a un menu déroulant avec 3 choix: Automatique, Aucun et Max. Le choix par défaut est Automatique. Je vous invite à choisir plutôt Aucun. Cela va forcer Excel à redéterminer les valeurs et à ne conserver que les valeurs qui existent réellement. Il est documenté que cette option est un peu plus longue à l’exécution que l’option par défaut, mais, de mon côté, je n’ai jamais vu de différences significatives.
Francis
Francis Paquet
ParticipantBonjour Si_a,
Nous avons effectivement comme projet de développer notre excellente formation d’introduction à la Programmation VBA sous forme de elearning en 2017.
En attendant, vous pouvez utiliser le forum afin de nous faire part de vos problèmes, au fur et à mesure.
Francis
-
AuthorPosts