IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

POWER Discussion :

Power Query : optimisation code avec condition IF


Sujet :

POWER

  1. #1
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 134
    Points : 84 788
    Points
    84 788
    Billets dans le blog
    15
    Par défaut Power Query : optimisation code avec condition IF
    Bonjour,

    j'utilise le code ci-après qui est fonctionnel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    //Identification des éléments de l'actif circulant
    if (Text.Start(Text.From([Compte]),2)="33") and [Solde]<0 then "Actif Circulant" else 
    if(Text.Start(Text.From([Compte]),2)="39") and [Solde]>0 then "Actif Circulant" else
    if(Text.Start(Text.From([Compte]),2)="40") and [Solde]<0 then "Actif Circulant" else
    if(Text.Start(Text.From([Compte]),2)="41") and [Solde]<0 then "Actif Circulant" else
    if(Text.Start(Text.From([Compte]),2)="42") and [Solde]<0 then "Actif Circulant" else 
    if(Text.Start(Text.From([Compte]),2)="43") and [Solde]<0 then "Actif Circulant" else
    if(Text.Start(Text.From([Compte]),2)="44") and [Solde]<0 then "Actif Circulant" else
    if(Text.Start(Text.From([Compte]),2)="45") and [Solde]<0 then "Actif Circulant" else
    if(Text.Start(Text.From([Compte]),2)="46") and [Solde]<0 then "Actif Circulant" else
    if(Text.Start(Text.From([Compte]),2)="47") and [Solde]<0 then "Actif Circulant" else
    if(Text.Start(Text.From([Compte]),2)="48") and [Solde]<0 then "Actif Circulant"
     else
    if(Text.Start(Text.From([Compte]),3)="490") and [Solde]>0 then "Actif Circulant" else 
    if(Text.Start(Text.From([Compte]),3)="491") and [Solde]>0
    then "Actif Circulant" else 
    if(Text.Start(Text.From([Compte]),3)="497") and [Solde]>0
    then "Actif Circulant"
       else 
     
    //Identification des éléments du Passif Circulant
     
    if (Text.Start(Text.From([Compte]),2)="33") and [Solde]>0 then "Passif Circulant" else 
    if(Text.Start(Text.From([Compte]),2)="39") and [Solde]>0 then "Passif Circulant" else
    if(Text.Start(Text.From([Compte]),2)="40") and [Solde]>0 then "Passif Circulant" else
    if(Text.Start(Text.From([Compte]),2)="41") and [Solde]>0 then "Passif Circulant" else
    if(Text.Start(Text.From([Compte]),2)="42") and [Solde]>0 then "Passif Circulant" else 
    if(Text.Start(Text.From([Compte]),2)="43") and [Solde]>0 then "Passif Circulant" else
    if(Text.Start(Text.From([Compte]),2)="44") and [Solde]>0 then "Passif Circulant" else
    if(Text.Start(Text.From([Compte]),2)="45") and [Solde]>0 then "Passif Circulant" else
    if(Text.Start(Text.From([Compte]),2)="46") and [Solde]>0 then "Passif Circulant" else
    if(Text.Start(Text.From([Compte]),2)="47") and [Solde]>0 then "Passif Circulant" else
    if(Text.Start(Text.From([Compte]),2)="48") and [Solde]>0 then "Passif Circulant"
     else
    if(Text.Start(Text.From([Compte]),3)="490") and [Solde]<0 then "Passif Circulant" else 
    if(Text.Start(Text.From([Compte]),3)="491") and [Solde]<0
    then "Passif Circulant" else 
    if(Text.Start(Text.From([Compte]),3)="497") and [Solde]< 0 then "Passif Circulant" else 
    if(Text.Start(Text.From([Compte]),3)="499") and [Solde]> 0 then "Passif Circulant" 
       else " "
    Auriez-vous une solution pour l'optimiser, car j'imagine que cela peut-être raccourci ?

    Merci d'avance
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Bonjour,

    Une piste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if Text.Contains("33-39-40-42-42-43-44-45-46-47-48-", Text.Start(Text.From([Compte]),2) & "-")> 0 and [Solde]<0 then "Actif Circulant" else
    Cordialement.

  3. #3
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 420
    Points : 16 264
    Points
    16 264
    Par défaut
    Bonjour

    Quelques autres pistes :
    • Soit créer un table des préfixes et croiser avec la table
    • Soit utiliser la conversion en nombre pour travailler sur des groupes :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      if Number.From(Text.Start(Text.From([Compte]),2))>=39 and Number.From(Text.Start(Text.From([Compte]),2))<=48 then ...
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  4. #4
    Membre émérite
    Homme Profil pro
    ingénieur
    Inscrit en
    Mars 2015
    Messages
    1 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ingénieur
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2015
    Messages : 1 058
    Points : 2 525
    Points
    2 525
    Par défaut
    Bonsoir
    Attention les lignes 2 et 24 sont identiques

    Sinon il est possible également de passer par une table de seuils code et montant
    Puis de faire l'union des deux tables, de trier par ordre croissant des codes et des montants.
    Ensuite il faut recopier vers le bas la rubrique.

    Stephane

  5. #5
    Membre émérite
    Homme Profil pro
    ingénieur
    Inscrit en
    Mars 2015
    Messages
    1 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ingénieur
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2015
    Messages : 1 058
    Points : 2 525
    Points
    2 525
    Par défaut
    En complément
    Toutes les conditions de 40 à 48 peuvent être regroupées puisqu'elles ont la même règle :
    Si commence par 4 et ne commence pas par 49 ...

    Stéphane

  6. #6
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 134
    Points : 84 788
    Points
    84 788
    Billets dans le blog
    15
    Par défaut
    Bonsoir à tous,

    Tout d'abord je vous remercie pour les différentes propositions
    Je vais les tester toutes et vous revenir pour informer de la suite.

    encore

    Citation Envoyé par Raccourcix Voir le message
    Bonsoir
    Attention les lignes 2 et 24 sont identiques
    Stephane
    Bien vu
    Merci
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  7. #7
    Membre émérite
    Homme Profil pro
    ingénieur
    Inscrit en
    Mars 2015
    Messages
    1 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ingénieur
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2015
    Messages : 1 058
    Points : 2 525
    Points
    2 525
    Par défaut
    Bonjour
    Personnellement je ne passerai pas pas une formule conditionnelle sur toutes les lignes de la table. Car il y en a potentiellement beaucoup
    J'aurai une table des codes avec deux champs "positif" et "négatif" pour les règles dans chaque cas
    Ensuite je ferai une fusion de la table des écritures comptables avec cette table des codes uniquement sur le champ codes. Pour obtenir une colonne avec la table de correspondance.
    Sans même avoir besoin de développer cette colonne "correspondance" je créerai une colonne conditionnelle du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if [montant] > 0 and not Table.IsEmpty([correspondance]) then [correspondance][positif]{0} else [correspondance][négatif]{0}
    Stéphane

  8. #8
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 134
    Points : 84 788
    Points
    84 788
    Billets dans le blog
    15
    Par défaut
    Bonjour,

    Citation Envoyé par Raccourcix Voir le message
    Bonjour
    Personnellement je ne passerai pas pas une formule conditionnelle sur toutes les lignes de la table. Car il y en a potentiellement beaucoup
    J'aurai une table des codes avec deux champs "positif" et "négatif" pour les règles dans chaque cas
    Effectivement on en a beaucoup et l'idée me plait bien. Cependant, pour les deux champs à créer "Positif" et "Négatif", qu'est ce qu'il faut mettre dans les cellule correspondante ? Je ne comprends pas trop comment les alimenter.

    Nom : Capture.PNG
Affichages : 296
Taille : 11,6 Ko
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  9. #9
    Membre émérite
    Homme Profil pro
    ingénieur
    Inscrit en
    Mars 2015
    Messages
    1 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ingénieur
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2015
    Messages : 1 058
    Points : 2 525
    Points
    2 525
    Par défaut
    Bonsoir

    Cependant, pour les deux champs à créer "Positif" et "Négatif", qu'est ce qu'il faut mettre dans les cellule correspondante ? Je ne comprends pas trop comment les alimenter.
    Tu indiques dans chaque colonne "Actif" ou "Passif" suivant la condition.

    Ensuite tu récupères la liste de tous les codes existants et tu appliques la règle (donc une fois sur chacun, il n'est pas utile de faire les calculs à chaque occurrence du compte)

    Enfin tu fusionnes ta base comptable avec cette liste de code pour obtenir le résultat souhaité (en positif ou en négatif).

    je vais essayer de préparer un mini exemple demain lorsque j'aurai Excel sous la main.

    Stéphane

  10. #10
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 134
    Points : 84 788
    Points
    84 788
    Billets dans le blog
    15
    Par défaut
    Bonsoir,

    Citation Envoyé par Raccourcix Voir le message

    je vais essayer de préparer un mini exemple demain lorsque j'aurai Excel sous la main.

    Stéphane
    Merci pour tes explications, ce sera top. Merci encore pour l'aide proposée et bien appréciée.
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  11. #11
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Salut Malick,

    si j'ai bien compris:
    1. Créer une table des rubriques avec le type de compte (actif/passif);
    2. Dans Power Query, amener les comptes et les rubriques;
    3. Transformer N° de compte et rubriques en valeurs textuelles;
    4. Ajouter une colonne rubrique aux comptes pour extraire la rubrique;
    5. Fusionner les requêtes sur la colonne commune.


    Nom : 2022-04-04_085033.png
Affichages : 278
Taille : 206,8 Ko
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  12. #12
    Membre émérite
    Homme Profil pro
    ingénieur
    Inscrit en
    Mars 2015
    Messages
    1 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ingénieur
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2015
    Messages : 1 058
    Points : 2 525
    Points
    2 525
    Par défaut
    Bonjour

    Comme convenu voici une illustration de la méthode que je propose

    Soit 2 tables que l'on charge dans Power Query
    - "Règles" avec les conditions
    - "Données" avec des codes et les montants


    A partir des "données" on récupère une table des codes uniques. on fait l'union avec les règles, on trie par ordre croissant et on recopie vers le bas ces règles.
    On définie ainsi la règle à appliquer pour chaque code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    let
        Source = Données,
        #"Autres colonnes supprimées" = Table.SelectColumns(Source,{"Code"}),
        #"Doublons supprimés" = Table.Distinct(#"Autres colonnes supprimées", {"Code"}),
        #"Requête ajoutée" = Table.Combine({#"Doublons supprimés", Règles}),
        #"Lignes triées" = Table.Sort(#"Requête ajoutée",{{"Code", Order.Ascending}}),
        #"Rempli vers le bas" = Table.FillDown(#"Lignes triées",{"Positif", "Négatif"})
    in
        #"Rempli vers le bas"
    Ensuite plusieurs possibilités

    On fusionne, on développe et on ajoute une colonne conditionnelle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    let
        Source = Table.NestedJoin(Données, {"Code"}, Comptes, {"Code"}, "Comptes", JoinKind.LeftOuter),
        #"Comptes développé" = Table.ExpandTableColumn(Source, "Comptes", {"Positif", "Négatif"}, {"Positif", "Négatif"}),
        #"Colonne conditionnelle ajoutée" = Table.AddColumn(#"Comptes développé", "Type", each if [Montant] > 0 then [Positif] else [Négatif]),
        #"Colonnes supprimées" = Table.RemoveColumns(#"Colonne conditionnelle ajoutée",{"Positif", "Négatif"})
    in
        #"Colonnes supprimées"
    sinon, on peut éviter de développer et on ajouter la condition directement depuis la table

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    let
        Source = Table.NestedJoin(Données, {"Code"}, Comptes, {"Code"}, "Comptes", JoinKind.LeftOuter),
        #"Colonne conditionnelle ajoutée" = Table.AddColumn(Source, "Type", each if [Montant] > 0 then [Comptes][Positif]{0} else [Comptes][Négatif]{0}),
        #"Colonnes supprimées" = Table.RemoveColumns(#"Colonne conditionnelle ajoutée",{"Comptes"})
    in
        #"Colonnes supprimées"
    Ou encore, on dépivote la table des comptes et on remplace "Positif" par 1 et "Négatif" par -1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    let
        Source = Comptes,
        #"Lignes filtrées" = Table.SelectRows(Source, each [Commentaire] = null),
        #"Colonnes supprimées" = Table.RemoveColumns(#"Lignes filtrées",{"Commentaire"}),
        #"Supprimer le tableau croisé dynamique des autres colonnes" = Table.UnpivotOtherColumns(#"Colonnes supprimées", {"Code"}, "Attribut", "Valeur"),
        #"Valeur remplacée" = Table.ReplaceValue(#"Supprimer le tableau croisé dynamique des autres colonnes","Positif","1",Replacer.ReplaceText,{"Attribut"}),
        #"Valeur remplacée1" = Table.ReplaceValue(#"Valeur remplacée","Négatif","-1",Replacer.ReplaceText,{"Attribut"}),
        #"Type modifié" = Table.TransformColumnTypes(#"Valeur remplacée1",{{"Attribut", Int64.Type}})
    in
        #"Type modifié"
    et on ajoute une colonne "Signe" aux données avec Number.Sign pour fusionner sur les codes et les signes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    let
        Source = Données,
        #"Signe inséré" = Table.AddColumn(Source, "Signe", each Number.Sign([Montant]), Int64.Type),
        #"Requêtes fusionnées" = Table.NestedJoin(#"Signe inséré", {"Code", "Signe"}, #"Comptes - signes dépivotés", {"Code", "Attribut"}, "Comptes - signes dépivotés", JoinKind.LeftOuter),
        #"Comptes - signes dépivotés développé" = Table.ExpandTableColumn(#"Requêtes fusionnées", "Comptes - signes dépivotés", {"Valeur"}, {"Valeur"}),
        #"Colonnes supprimées" = Table.RemoveColumns(#"Comptes - signes dépivotés développé",{"Signe"})
    in
        #"Colonnes supprimées"
    voici un fichier exemple
    2022_04_04 Correspondance début code .xlsx

    Stéphane

  13. #13
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 134
    Points : 84 788
    Points
    84 788
    Billets dans le blog
    15
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    Salut Malick,

    si j'ai bien compris:
    1. Créer une table des rubriques avec le type de compte (actif/passif);
    Merci pour ton retour.

    Il manque une petite chose qui chamboule l'astuce en fait et c'est ce qui a suscité la question. En fait, Pour que le compte soit is en Actif circulant ou Passif circulant, il y a le solde du compte (positif ou négatif) ) à prendre en compte. Et suivant le solde, on affecte en Actif circulant ou passif circulant.
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  14. #14
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    A part pour les comptes d'attente (499), on laisse les comptes d'actif à l'actif et les comptes de passif au passif (dans le bilan belge, c'est comme cela qu'on faisait lorsque j'étais comptable). Et pour les comptes d'attente, un prof nous avait conseillé de créé deux comptes bilantaires, un à l'actif si total au débit, un au passif si total au crédit, et on passait l'écriture au moment de la clôture.


    Il faudrait voir ta table d'écritures pour mieux comprendre la conception du classeur. Pourrais-tu produire une copie d'écran?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  15. #15
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 134
    Points : 84 788
    Points
    84 788
    Billets dans le blog
    15
    Par défaut
    Salut,

    Citation Envoyé par Pierre Fauconnier Voir le message
    A part pour les comptes d'attente (499), on laisse les comptes d'actif à l'actif et les comptes de passif au passif (dans le bilan belge, c'est comme cela qu'on faisait lorsque j'étais comptable).
    C'est effectivement cela, parfaitement en phase avec toi ==> J'ai mélangé les explication je pense

    En fait, la gestion des positifs ou négatifs pour moi c'était de prendre en compte dans le traitement les soldes anormalement créditeurs ou bien anormalement débiteurs. Un compte passif qui se trouve avec un solde anormalement débiteur ne sera pas intégré dans la rubrique du Passif. ==> tu vois ce que je veux dire.

    Mais j'ai adopté la démarche que tu as proposée pour d'autres reportings, je vais la mettre en pratique pour ce cas-ci aussi.

    bien
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  16. #16
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 134
    Points : 84 788
    Points
    84 788
    Billets dans le blog
    15
    Par défaut
    Bonjour Stéphane,

    Citation Envoyé par Raccourcix Voir le message
    Bonjour

    Comme convenu voici une illustration de la méthode que je propose

    Stéphane
    Merci beaucoup Je regarde cela et essaie également une mise en pratique.

    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  17. #17
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par Malick Voir le message
    [...]
    Mais j'ai adopté la démarche que tu as proposée pour d'autres reportings, je vais la mettre en pratique pour ce cas-ci aussi.[...]
    Pour le fun, tu pourrais montrer ton tableau d'écritures ou ta balance (anomymisé(e), bien sûr).
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  18. #18
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 134
    Points : 84 788
    Points
    84 788
    Billets dans le blog
    15
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    Pour le fun, tu pourrais montrer ton tableau d'écritures ou ta balance (anomymisé(e), bien sûr).
    Bien noté. Je prépare quelque chose et vous reviens
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  19. #19
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 134
    Points : 84 788
    Points
    84 788
    Billets dans le blog
    15
    Par défaut
    Bonjour à tous,

    avec le tableau bien paramétré suivant le plan comptable, le croisement avec les comptes de la balance comptable permettent bien d'obtenir le résultat attendu.

    Merci beaucoup à tous pour l'intérêt porté à ma requête

    POWER QUERY, un outil à connaître et utiliser pour automatiser des tâches récurrentes.
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Optimisation code avec boucle
    Par phileasdav dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/09/2018, 08h43
  2. Optimisation code avec une boucle For
    Par latour500 dans le forum jQuery
    Réponses: 7
    Dernier message: 11/04/2014, 15h02
  3. Optimiser code avec date
    Par kopouge dans le forum Macro
    Réponses: 3
    Dernier message: 07/06/2010, 11h56
  4. [XL-2003] Simplifier code avec condition
    Par AMO05 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/05/2009, 12h27
  5. Code avec condition "Or"
    Par jam92400 dans le forum Access
    Réponses: 2
    Dernier message: 12/02/2007, 14h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo