Toutes mes réponses sur les forums

15 sujets de 1 à 15 (sur un total de 48)
  • Auteur
    Articles
  • en réponse à : fichier fantôme FUNCRES.XLAM (classeur .xlsb) #83424
    Francis Paquet
    Participant

    Bonjour,

    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

    en réponse à : solver – 2 equations a 2 inconnues (2nd ordre) #57223
    Francis Paquet
    Participant

    Bonjour,

    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,86111

    Voilà,

    Francis

    en réponse à : Même macro sur plusieurs feuilles de calcul #51613
    Francis Paquet
    Participant

    Bonjour,

    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 sh

    End Sub

    Voilà,

    en réponse à : Inventories #42773
    Francis Paquet
    Participant

    Bonjour,

    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

    Francis Paquet
    Participant

    Bonjour,

    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

    Francis Paquet
    Participant

    Bonjour,

    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.
    en réponse à : VBA Excel Requête WEB #36085
    Francis Paquet
    Participant

    Avez-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

    en réponse à : Sélectionner onglets pairs ou impairs #35255
    Francis Paquet
    Participant

    Bonsoir,

    Des boutons ActiveX différents, un sur chaque feuille, peuvent être tous liés à la même macro VBA sans aucun problème…

    • Cette réponse a été modifiée le il y a 6 années et 10 mois par Francis Paquet.
    en réponse à : Sélectionner onglets pairs ou impairs #35251
    Francis Paquet
    Participant

    Bonjour,

    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

    en réponse à : Sélectionner onglets pairs ou impairs #34997
    Francis Paquet
    Participant

    Bonsoir,

    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

    en réponse à : Sélectionner onglets pairs ou impairs #34512
    Francis Paquet
    Participant

    Bonjour,

    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

    en réponse à : Sélectionner onglets pairs ou impairs #34508
    Francis Paquet
    Participant

    Bonjour,

    Le code devrait être, tout simplement:
    Pour masquer les onglets pairs

    Sub 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

    • Cette réponse a été modifiée le il y a 6 années et 11 mois par Francis Paquet.
    en réponse à : Sélectionner onglets pairs ou impairs #34394
    Francis Paquet
    Participant

    Bonjour,

    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

    en réponse à : Segment et éléments supprimés de la source de données #33629
    Francis Paquet
    Participant

    Pascal,

    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

    en réponse à : E-LEARNING VBA #32747
    Francis Paquet
    Participant

    Bonjour 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

15 sujets de 1 à 15 (sur un total de 48)