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

Python Discussion :

Remplissage d'un Excel


Sujet :

Python

  1. #1
    Membre confirmé
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Juillet 2020
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Juillet 2020
    Messages : 142
    Par défaut Remplissage d'un Excel
    Bonjour à tous,


    je suis un peu perdu j'essayer de remplir un Excel mais quand j'ouvre l'Excel, il n'y a que les dernière ligne qui sont afficher alors qu'il doit afficher plusieurs lignes.

    Voila mon code
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    # coding: utf-8
    import cx_Oracle
    import os.path
    import os
    import datetime
    import os.path, time
    import shutil
    import smtplib
    from email.mime.multipart import MIMEMultipart
    from email.mime.text import MIMEText
    from email.mime.base import MIMEBase
    from email import encoders
    import xlsxwriter
     
    def requete_to_stock_BVT(taille):
    #Nous créeons notre requête SQL ici
     sql=   """
            SELECT *
            FROM prod_stok
            where QTE_"""+ taille +""" < 100
                and code_art_com IN ('5046','5101','86545','5408','87115','84320','87795','86440','86118','5346','5021','0046','90007',
                          '7-110046','184','317','884401','884400','802149','802147','2603','2504','2202','10745','10746',
                          '10779','11383','11938','11341','13317','14521','14940')
                and code_lieu= 'BVT'
                and typ_enrg = '0'
                and sais IN('00P','21E')
            """
     try:
         #Connexion à la base de donnée
         with cx_Oracle.connect("user", "pass", "base de donnnées") as connection:
             with connection.cursor() as cursor:
                cursor.execute(sql)
                wb = xlsxwriter.Workbook('alert_BVT.xlsx')
                ws = wb.add_worksheet()
                compteur_ligne = 0
                ws.write("A1","Lieu")
                ws.write("B1","Magasin")
                ws.write("C1","Saison")
                ws.write("D1","Article")
                ws.write("E1","Couleur")
                ws.write("F1","60/36")
                ws.write("G1","65/38")
                ws.write("H1","70/40")
                ws.write("I1","75/42")
                ws.write("J1","80/44")
                ws.write("K1","85/46")
                ws.write("L1","90/48")
                ws.write("N1","95/50")
                ws.write("M1","100/52")
                ws.write("O1","105/54")
                ws.write("P1","110/56")
                ws.write("Q1","115/58")
                for row in cursor:
                    compteur_ligne += 1
                    ws.write(compteur_ligne,0,str(row[0]))
                    ws.write(compteur_ligne,1,str(row[1]))
                    ws.write(compteur_ligne,2,str(row[2]))
                    ws.write(compteur_ligne,3,str(row[3]))
                    ws.write(compteur_ligne,4,str(row[4]))
                    ws.write(compteur_ligne,5,str(row[8]))
                    ws.write(compteur_ligne,6,str(row[9]))
                    ws.write(compteur_ligne,7,str(row[10]))
                    ws.write(compteur_ligne,8,str(row[11]))
                    ws.write(compteur_ligne,9,str(row[12]))
                    ws.write(compteur_ligne,10,str(row[13]))
                    ws.write(compteur_ligne,11,str(row[14]))
                    ws.write(compteur_ligne,12,str(row[15]))
                    ws.write(compteur_ligne,12,str(row[16]))
                    ws.write(compteur_ligne,13,str(row[17]))
                    ws.write(compteur_ligne,14,str(row[18]))
                    ws.write(compteur_ligne,15,str(row[19]))
                    ws.write(compteur_ligne,16,str(row[20]))
     
                wb.close()
    #Cette partie de code nous renvois les erreurs de la requête s'il y en a.
     except cx_Oracle.Error as error:
        print(error)
     
    def alert_to_stock_BVT():
        for y in range(12):
            if y >= 1:
                requete_to_stock_BVT(str(y))
     
    alert_to_stock_BVT();

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 756
    Par défaut
    Salut,

    Pourquoi vous n'écrivez pas une fonction qui lit la base de données, une autre qui écrit ce qu'on veut dans le fichier EXCEL. Ca permet de les tester indépendamment, puis lorsqu'elles fonctionnent, vous les composez.

    L'autre avantage est que si vous avez un problème, vous pourrez poster une code qui permette de le reproduire... Là, on ne peut pas parce qu'il faut la base de données et si la bourde n'est pas facile à détecter en lisant votre code, ben, si on ne peut pas reproduire, on ne peut pas vous donner des idées... Dommage!

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Juillet 2020
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Juillet 2020
    Messages : 142
    Par défaut
    Salut,

    Merci pour ta réponse mais c'est bien le code que j'utilise mais je pense le problème viens du compteur_ligne.

  4. #4
    Membre confirmé
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Juillet 2020
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Juillet 2020
    Messages : 142
    Par défaut
    la modification que j'ai faite est la suivante j'ai crée une variable dit global pour que je ne me retrouve pas avec un compteur qui se réinitialiser tout le temps mais maintenant dans le fichier Excel il n'y a plus de ligne.

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    # coding: utf-8
    import cx_Oracle
    import os.path
    import os
    import datetime
    import os.path, time
    import shutil
    import smtplib
    from email.mime.multipart import MIMEMultipart
    from email.mime.text import MIMEText
    from email.mime.base import MIMEBase
    from email import encoders
    import xlsxwriter
     
    compteur_ligne = 0
     
    def requete_to_stock_BVT(taille):
    #Nous créeons notre requête SQL ici
     sql=   """
            SELECT *
            FROM prod_stok
            where QTE_"""+ taille +""" < 100
                and code_art_com IN ('5046','5101','86545','5408','87115','84320','87795','86440','86118','5346','5021','0046','90007',
                          '7-110046','184','317','884401','884400','802149','802147','2603','2504','2202','10745','10746',
                          '10779','11383','11938','11341','13317','14521','14940')
                and code_lieu= 'BVT'
                and typ_enrg = '0'
                and sais IN('00P','21E')
            """
     try:
         #Connexion à la base de donnée
         with cx_Oracle.connect("user", "pass", "base de données") as connection:
             with connection.cursor() as cursor:
                cursor.execute(sql)
                wb = xlsxwriter.Workbook('alert_BVT.xlsx')
                ws = wb.add_worksheet()
                global compteur_ligne
                ws.write("A1","Lieu")
                ws.write("B1","Magasin")
                ws.write("C1","Saison")
                ws.write("D1","Article")
                ws.write("E1","Couleur")
                ws.write("F1","60/36")
                ws.write("G1","65/38")
                ws.write("H1","70/40")
                ws.write("I1","75/42")
                ws.write("J1","80/44")
                ws.write("K1","85/46")
                ws.write("L1","90/48")
                ws.write("N1","95/50")
                ws.write("M1","100/52")
                ws.write("O1","105/54")
                ws.write("P1","110/56")
                ws.write("Q1","115/58")
                for row in cursor:
                    compteur_ligne += 1
                    ws.write(compteur_ligne,0,str(row[0]))
                    ws.write(compteur_ligne,1,str(row[1]))
                    ws.write(compteur_ligne,2,str(row[2]))
                    ws.write(compteur_ligne,3,str(row[3]))
                    ws.write(compteur_ligne,4,str(row[4]))
                    ws.write(compteur_ligne,5,str(row[8]))
                    ws.write(compteur_ligne,6,str(row[9]))
                    ws.write(compteur_ligne,7,str(row[10]))
                    ws.write(compteur_ligne,8,str(row[11]))
                    ws.write(compteur_ligne,9,str(row[12]))
                    ws.write(compteur_ligne,10,str(row[13]))
                    ws.write(compteur_ligne,11,str(row[14]))
                    ws.write(compteur_ligne,12,str(row[15]))
                    ws.write(compteur_ligne,12,str(row[16]))
                    ws.write(compteur_ligne,13,str(row[17]))
                    ws.write(compteur_ligne,14,str(row[18]))
                    ws.write(compteur_ligne,15,str(row[19]))
                    ws.write(compteur_ligne,16,str(row[20]))
     
                wb.close()
    #Cette partie de code nous renvois les erreurs de la requête s'il y en a.
     except cx_Oracle.Error as error:
        print(error)
     
    def alert_to_stock_BVT():
        for y in range(12):
            if y >= 1:
                requete_to_stock_BVT(str(y))
    alert_to_stock_BVT();

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 756
    Par défaut
    Salut,

    Citation Envoyé par azaouali Voir le message
    j'ai crée une variable dit global pour que je ne me retrouve pas avec un compteur qui se réinitialiser tout le temps mais maintenant dans le fichier Excel il n'y a plus de ligne.
    Quel est l'intérêt de faire çà? L'intention est d'écrire chaque ligne lue depuis la base de donnée dans des lignes successives d'une nouvelle feuille vierge pas à la suite de ce que contient déjà la feuille.

    En plus si vous pensez que vous ne retrouvez pas le nombre de lignes lues dans le fichier EXCEL, la première question à vous poser serait combien de lignes ont été lues et écrites (il suffit d'afficher la valeur du compteur à la sortie de la boucle).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Membre confirmé
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Juillet 2020
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Juillet 2020
    Messages : 142
    Par défaut
    Oui, le nombre est 154 ce qui correspond au ligne qui sont renvoyé par la base de données

  7. #7
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 756
    Par défaut
    Citation Envoyé par azaouali Voir le message
    Oui, le nombre est 154 ce qui correspond au ligne qui sont renvoyé par la base de données
    C'est vous qui le dites... le code que vous avez posté devrait fonctionner et comme on ne peut pas le tester, pas facile d'en dire plus. Mais peut être que d'autres auront des idées.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  8. #8
    Membre confirmé
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Juillet 2020
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Juillet 2020
    Messages : 142
    Par défaut
    Bonjour,

    Désoler de ne répondre que maintenant mais comment veux tu test le code , si tu veux je te fait une simulation du résultat de la base de données.

  9. #9
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 756
    Par défaut
    Salut,

    C'est vous le programmeur. Si votre code ne fait pas ce que vous en attendez, quelle stratégie mettre en œuvre pour trouver la(les) cause(s) du problème?

    Dans un premier temps on part du problème constaté: "on ne retrouve pas le nombre de lignes attendues dans le fichier xlsx". Et à partir de là on vérifie qu'il y a des lignes à écrire, que les itérations supposées écrire ces lignes sont bien exécutées, ...
    Si on ne trouve rien de suspect, on reprend le problème à la base qui est juste écrire des lignes dans un fichier XL avec xlsxwriter.

    Des lignes, c'est une liste de listes (ou un itérable d'itérables)....
    Et une fonction qui prend en paramètre ce type d'objet et qui essaie de l'écrire suffira pour vérifier qu'on sait demander à xlsxwriter de faire çà.
    Ce qui se résume à écrire et tester:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    def ecrire_xlsx(path, lines):
         wb = xlsxwriter.Workbook(path)
         ws = wb.add_worksheet()
         for i, line in enumerate(lines):
              for j, value in enumerate(line):
                   ws.write(i, j, str(value))
        wb.close()
    Pour valider que çà fonctionne, on part d'un jeu de test: le nom d'un fichier, quelques lignes à écrire... dans un premier temps.

    Si çà marche, on est confiant sur ce que fait la fonction ecrire_xlsx et on ne regardera plus trop comment elle est écrite: juste l'appeler avec les paramètres qui vont bien.

    Si çà ne marche pas, soit il y a un message d'erreur soit on constate qu'on ne retrouve pas les données attendues dans le fichier... et la possibilité de le reproduire sur un exemple simple.

    Ceci dit, comme je vous l'écrivais dans ma première réponse, programmer, c'est apprendre à découper le problème en parties qu'on va réaliser et tester indépendamment pour ensuite les composer. C'est un exercice de construction et de planification.
    C'est pas écrire des tas de lignes ou à la fin on ne maîtrise plus rien...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  10. #10
    Membre confirmé
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Juillet 2020
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Juillet 2020
    Messages : 142
    Par défaut
    Merci pour ta réponse mais j'ai déjà effectuer les tests mais ce n'ai pas la fonction xlsxwriter mais plutôt la requête SQL qui ne vas pas car j'ai constaté que en rajoutant une variable qui est code_art_com il ne se comporte plus comme avant donc je chercher pourquoi cette variable pose probleme.

  11. #11
    Membre confirmé
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Juillet 2020
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Juillet 2020
    Messages : 142
    Par défaut
    Je pense savoir ce qui cloche, la requête renvois un NONE et donc il n'arrive pas continuer à remplir le tableau car la requête renvois un nonetype.

  12. #12
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 756
    Par défaut
    Citation Envoyé par azaouali Voir le message
    Je pense savoir ce qui cloche, la requête renvois un NONE et donc il n'arrive pas continuer à remplir le tableau car la requête renvois un nonetype
    Ben... ce n'est pas une surprise.
    Le code ne pense pas, il se contente d'exécuter des instructions.
    A vous de vérifier que çà fait bien ce que vous attendiez plutôt que partir sur des hypothèses et autres présupposés qui vous embarque à chercher là où il n'y a rien à trouver.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  13. #13
    Membre confirmé
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Juillet 2020
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Juillet 2020
    Messages : 142
    Par défaut
    Bonjour,

    j'ai tout testé mais rien n'y fait, voila ce que j'ai testé :

    J'ai print le type des row pour savoir si il y a un Nonetype mais tout les résultats sont des tuples donc le problème ne viens visiblement pas d'ici.

    Ensuite j'ai print row pour voir ce qu'il contient et à ce que vois il n'y a rien d'anormal

    Pour finir j'ai print le compteur_ligne qui lui aussi est normal.

    je vous mais le code ci-dessous :

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    # coding: utf-8
    import cx_Oracle
    import os.path
    import os
    import datetime
    import os.path, time
    import shutil
    import smtplib
    from email.mime.multipart import MIMEMultipart
    from email.mime.text import MIMEText
    from email.mime.base import MIMEBase
    from email import encoders
    import xlsxwriter
     
    compteur_ligne = 0
     
    def requete_to_stock_BVT(taille):
    #Nous créeons notre requête SQL ici
     sql=   """
            SELECT *
            FROM prod_stok
            where QTE_"""+ taille +""" < 100
                and code_art_com IN ('5046','5101','86545','5408','87115','84320','87795','86440','86118','5346','5021','0046','90007',
                          '7-110046','184','317','884401','884400','802149','802147','2603','2504','2202','10745','10746',
                          '10779','11383','11938','11341','13317','14521','14940')
                and code_lieu= 'BVT'
                and typ_enrg = '0'
                and sais IN('00P','21E')
            """
     try:
         #Connexion à la base de donnée
         with cx_Oracle.connect("user", "pass", "base de données") as connection:
             with connection.cursor() as cursor:
                cursor.execute(sql)
                wb = xlsxwriter.Workbook('alert_BVT.xlsx')
                ws = wb.add_worksheet()
                global compteur_ligne
                ws.write("A1","Lieu")
                ws.write("B1","Magasin")
                ws.write("C1","Saison")
                ws.write("D1","Article")
                ws.write("E1","Couleur")
                ws.write("F1","60/36")
                ws.write("G1","65/38")
                ws.write("H1","70/40")
                ws.write("I1","75/42")
                ws.write("J1","80/44")
                ws.write("K1","85/46")
                ws.write("L1","90/48")
                ws.write("N1","95/50")
                ws.write("M1","100/52")
                ws.write("O1","105/54")
                ws.write("P1","110/56")
                ws.write("Q1","115/58")
                for row in cursor:
                     print(type(row))
                     print(row)
                     print(compteur_ligne)
                     if row is not None:
                         compteur_ligne += 1
                         ws.write(compteur_ligne,0,str(row[0]))
                         ws.write(compteur_ligne,1,str(row[1]))
                         ws.write(compteur_ligne,2,str(row[2]))
                         ws.write(compteur_ligne,3,str(row[3]))
                         ws.write(compteur_ligne,4,str(row[4]))
                         ws.write(compteur_ligne,5,str(row[8]))
                         ws.write(compteur_ligne,6,str(row[9]))
                         ws.write(compteur_ligne,7,str(row[10]))
                         ws.write(compteur_ligne,8,str(row[11]))
                         ws.write(compteur_ligne,9,str(row[12]))
                         ws.write(compteur_ligne,10,str(row[13]))
                         ws.write(compteur_ligne,11,str(row[14]))
                         ws.write(compteur_ligne,12,str(row[15]))
                         ws.write(compteur_ligne,12,str(row[16]))
                         ws.write(compteur_ligne,13,str(row[17]))
                         ws.write(compteur_ligne,14,str(row[18]))
                         ws.write(compteur_ligne,15,str(row[19]))
                         ws.write(compteur_ligne,16,str(row[20]))
                wb.close()
    #Cette partie de code nous renvois les erreurs de la requête s'il y en a.
     except cx_Oracle.Error as error:
        print(error)
     
    def alert_to_stock_BVT():
        for y in range(12):
            if y >= 1:
                requete_to_stock_BVT(str(y))
     
    alert_to_stock_BVT();
    Et aussi le résultat :

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    <class 'tuple'>
    ('BVT', 'LI', '00P', '11341', '220', None, '0', '1', 0, 0, 0, 500, 0, 731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, None, None, None)
    0
    <class 'tuple'>
    ('BVT', 'LI', '00P', '11341', '511', None, '0', '1', 0, 0, 0, 500, 0, 731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, None, None, None)
    1
    <class 'tuple'>
    ('BVT', 'CO', '00P', '14521', '400', None, '0', '1', 79, 326, 429, 500, 335, 731, 102, 126, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    2
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '184', '300', None, '0', '2', 0, 0, 0, 500, 1, 731, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, None, None, None)
    3
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '84320', '265', None, '0', 'S', 4, 0, 0, 500, 0, 731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, None, None, None)
    4
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '884400', '900', None, '0', 'S', 10, 0, 21, 500, 0, 731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, None, None, None)
    5
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '0046', '300', None, '0', 'S', None, 45, 38, 500, 11, 731, 25, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    6
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '0046', '400', None, '0', 'S', None, 4, 2, 500, 37, 731, 3, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    7
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '10745', '300', None, '0', 'S', None, 4, 1171, 500, 1150, 731, 1125, 553, 565, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    8
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '10746', '300', None, '0', 'S', None, 9, 712, 500, 682, 731, 832, 438, 302, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    9
    <class 'tuple'>
    ('BVT', 'LI', '00P', '11341', '220', None, '0', '1', 0, 0, 0, 500, 0, 731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, None, None, None)
    10
    <class 'tuple'>
    ('BVT', 'LI', '00P', '11341', '511', None, '0', '1', 0, 0, 0, 500, 0, 731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, None, None, None)
    11
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '11938', '300', None, '0', 'S', None, 4, 91, 500, 35, 731, 31, 30, 37, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    12
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '14940', '400', None, '0', 'S', None, 5, 44, 500, 4, 731, 2, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    13
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '14940', '895', None, '0', 'S', None, 7, 24, 500, 9, 731, 1, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    14
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '184', '300', None, '0', '2', 0, 0, 0, 500, 1, 731, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, None, None, None)
    15
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '2603', '300', None, '0', 'S', None, 3, 1130, 500, 1404, 731, 1054, 778, 3, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    16
    <class 'tuple'>
    ('BVT', 'CO', '00P', '317', '840', None, '0', '1', None, 94, 139, 500, 188, 731, 112, 64, 77, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    17
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '84320', '265', None, '0', 'S', 4, 0, 0, 500, 0, 731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, None, None, None)
    18
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '84320', '488', None, '0', 'S', None, 6, None, 500, 5, 731, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    19
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '884400', '900', None, '0', 'S', 10, 0, 21, 500, 0, 731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, None, None, None)
    20
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '884401', '300', None, '0', 'S', None, 4, 13, 500, 34, 731, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    21
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '90007', '400', None, '0', 'S', None, 13, 16, 500, 21, 731, 23, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    22
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '0046', '300', None, '0', 'S', None, 45, 38, 500, 11, 731, 25, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    23
    <class 'tuple'>
    ('BVT', 'CO', '00P', '0046', '400', None, '0', '1', None, 133, 96, 500, 190, 731, 227, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    24
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '0046', '400', None, '0', 'S', None, 4, 2, 500, 37, 731, 3, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    25
    <class 'tuple'>
    ('BVT', 'CO', '00P', '10779', '300', None, '0', '1', None, 277, 69, 500, 461, 731, 332, 294, 232, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    26
    <class 'tuple'>
    ('BVT', 'LI', '00P', '11341', '220', None, '0', '1', 0, 0, 0, 500, 0, 731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, None, None, None)
    27
    <class 'tuple'>
    ('BVT', 'LI', '00P', '11341', '511', None, '0', '1', 0, 0, 0, 500, 0, 731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, None, None, None)
    28
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '11938', '300', None, '0', 'S', None, 4, 91, 500, 35, 731, 31, 30, 37, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    29
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '14940', '400', None, '0', 'S', None, 5, 44, 500, 4, 731, 2, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    30
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '14940', '895', None, '0', 'S', None, 7, 24, 500, 9, 731, 1, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    31
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '184', '300', None, '0', '2', 0, 0, 0, 500, 1, 731, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, None, None, None)
    32
    <class 'tuple'>
    ('BVT', 'PE', '00P', '184', '300', None, '0', 'P', None, None, 6, 500, 18, 731, 6, 6, 6, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    33
    <class 'tuple'>
    ('BVT', 'CO', '00P', '184', '400', None, '0', '1', None, None, 82, 500, 193, 731, 135, 104, 104, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    34
    <class 'tuple'>
    ('BVT', 'PE', '00P', '184', '400', None, '0', 'P', None, None, 6, 500, 6, 731, 6, 6, 6, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    35
    <class 'tuple'>
    ('BVT', 'PE', '00P', '184', '840', None, '0', 'P', None, None, 6, 500, 12, 731, 6, 6, 6, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    36
    <class 'tuple'>
    ('BVT', 'PE', '00P', '2603', '400', None, '0', 'P', None, None, 3, 500, None, 731, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    37
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '7-110046', '400', None, '0', 'S', None, 400, 41, 500, 42, 731, None, 41, 1, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    38
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '7-110046', '895', None, '0', 'S', None, None, 3, 500, 45, 731, 1, 41, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    39
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '84320', '265', None, '0', 'S', 4, 0, 0, 500, 0, 731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, None, None, None)
    40
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '884400', '900', None, '0', 'S', 10, 0, 21, 500, 0, 731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, None, None, None)
    41
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '884401', '300', None, '0', 'S', None, 4, 13, 500, 34, 731, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    42
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '90007', '400', None, '0', 'S', None, 13, 16, 500, 21, 731, 23, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    43
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '0046', '300', None, '0', 'S', None, 45, 38, 500, 11, 731, 25, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    44
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '0046', '400', None, '0', 'S', None, 4, 2, 500, 37, 731, 3, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    45
    <class 'tuple'>
    ('BVT', 'LI', '00P', '11341', '220', None, '0', '1', 0, 0, 0, 500, 0, 731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, None, None, None)
    46
    <class 'tuple'>
    ('BVT', 'LI', '00P', '11341', '511', None, '0', '1', 0, 0, 0, 500, 0, 731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, None, None, None)
    47
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '11938', '300', None, '0', 'S', None, 4, 91, 500, 35, 731, 31, 30, 37, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    48
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '14940', '400', None, '0', 'S', None, 5, 44, 500, 4, 731, 2, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    49
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '14940', '895', None, '0', 'S', None, 7, 24, 500, 9, 731, 1, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    50
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '184', '300', None, '0', '2', 0, 0, 0, 500, 1, 731, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, None, None, None)
    51
    <class 'tuple'>
    ('BVT', 'PE', '00P', '184', '300', None, '0', 'P', None, None, 6, 500, 18, 731, 6, 6, 6, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    52
    <class 'tuple'>
    ('BVT', 'PE', '00P', '184', '400', None, '0', 'P', None, None, 6, 500, 6, 731, 6, 6, 6, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    53
    <class 'tuple'>
    ('BVT', 'PE', '00P', '184', '840', None, '0', 'P', None, None, 6, 500, 12, 731, 6, 6, 6, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    54
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '2504', '400', None, '0', 'S', None, None, None, 500, 3, 731, 38, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    55
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '7-110046', '400', None, '0', 'S', None, 400, 41, 500, 42, 731, None, 41, 1, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    56
    <class 'tuple'>
    ('BVT', 'ZZ', '00P', '7-110046', '895', None, '0', 'S', None, None, 3, 500, 45, 731, 1, 41, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
    L'Excel ne se remplie toujours pas, je ne sais pas pourquoi

  14. #14
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 756
    Par défaut
    Citation Envoyé par azaouali Voir le message
    L'Excel ne se remplie toujours pas, je ne sais pas pourquoi
    Et si on ne sait pas reproduire... on ne va pas pouvoir chercher à votre place juste vous expliquer comment écrire un code plus robuste.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  15. #15
    Membre confirmé
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Juillet 2020
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Juillet 2020
    Messages : 142
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Et si on ne sait pas reproduire... on ne va pas pouvoir chercher à votre place juste vous expliquer comment écrire un code plus robuste.

    - W
    Comment puis-je vous aidez à reproduire ?

  16. #16
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 756
    Par défaut
    Citation Envoyé par azaouali Voir le message
    Comment puis-je vous aidez à reproduire ?
    Quand on programme, on fabrique des solutions.

    Reproduire des problèmes et permettre à d'autres de constater que... c'est juste bien pour remonter un bug aux développeurs (ou éventuellement dans un forum).

    Je vous ai proposé une démarche et du code dans cette réponse. A vous d'en tirer profit.

    note: pour reproduire il faut avoir les données et installer Oracle, cx_Oracle,... un boulot conséquent... pour un problème qui n'existe que parce que vous ignorez qu'on ne code pas comme çà si on ne veut pas se retrouver devant des problèmes insurmontables.


    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  17. #17
    Membre confirmé
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Juillet 2020
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Juillet 2020
    Messages : 142
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Quand on programme, on fabrique des solutions.

    Reproduire des problèmes et permettre à d'autres de constater que... c'est juste bien pour remonter un bug aux développeurs (ou éventuellement dans un forum).

    Je vous ai proposé une démarche et du code dans cette réponse. A vous d'en tirer profit.

    - W
    Ah j'était perdu, je ne comprenait pas ce que vous voulez j'ai pensé que vous voulez testé mais oui je suis déjà dessus j'essayé de remonté le problème et d'y trouvé les solutions.

  18. #18
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 756
    Par défaut
    Citation Envoyé par azaouali Voir le message
    Ah j'était perdu, je ne comprenait pas ce que vous voulez j'ai pensé que vous voulez testé mais oui je suis déjà dessus j'essayé de remonté le problème et d'y trouvé les solutions.
    Ce que je dis c'est que vous faites des affirmations sur le comportement de votre code qui sont certainement vraies (çà n'écrit pas ce que vous en attendez) mais que le problème est ailleurs (pas dans le code que vous proposez de regarder) sauf à pouvoir reproduire quoi que ce soit.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  19. #19
    Membre confirmé
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Juillet 2020
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Juillet 2020
    Messages : 142
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Ce que je dis c'est que vous faites des affirmations sur le comportement de votre code qui sont certainement vraies (çà n'écrit pas ce que vous en attendez) mais que le problème est ailleurs (pas dans le code que vous proposez de regarder) sauf à pouvoir reproduire quoi que ce soit.

    - W
    Merci pour t'es conseil mais je vais encore un petit soucis et je souhaiterais savoir pourquoi il m'affiche les derniers lignes de ma requête alors que quand je print i et j tout semble bien ce passé , je promet que ce sera ma dernière question

    Voici le code:

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    def requete_to_stock_BVT(taille):
    #Nous créeons notre requête SQL ici
     sql=   """
            SELECT *
            FROM prod_stok
            where QTE_"""+ taille +""" < 100
                and code_art_com IN ('5046','5101','86545','5408','87115','84320','87795','86440','86118','5346','5021','0046','90007',
                          '7-110046','184','317','884401','884400','802149','802147','2603','2504','2202','10745','10746',
                          '10779','11383','11938','11341','13317','14521','14940')
                and code_lieu= 'BVT'
                and typ_enrg = '0'
                and sais IN('00P','21E')
            """
     try:
         #Connexion à la base de donnée
         with cx_Oracle.connect("user", "pass", "base de données") as connection:
             with connection.cursor() as cursor:
                cursor.execute(sql)
                wb = xlsxwriter.Workbook('alert_BVT.xlsx')
                ws = wb.add_worksheet()
                ws.write("A1","Lieu")
                ws.write("B1","Magasin")
                ws.write("C1","Saison")
                ws.write("D1","Article")
                ws.write("E1","Couleur")
                ws.write("F1","60/36")
                ws.write("G1","65/38")
                ws.write("H1","70/40")
                ws.write("I1","75/42")
                ws.write("J1","80/44")
                ws.write("K1","85/46")
                ws.write("L1","90/48")
                ws.write("N1","95/50")
                ws.write("M1","100/52")
                ws.write("O1","105/54")
                ws.write("P1","110/56")
                ws.write("Q1","115/58")
                for i,row in enumerate(cursor):
                    for j,value in enumerate(row):
                        if (i >= 1) and (j <= 16) :
                            ws.write(i,j,str(value))
                wb.close()
    #Cette partie de code nous renvois les erreurs de la requête s'il y en a.
     except cx_Oracle.Error as error:
        print(error)
     
    def alert_to_stock_BVT():
        for y in range(12):
            if y >= 1:
                requete_to_stock_BVT(str(y))
    alert_to_stock_BVT();

  20. #20
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 756
    Par défaut
    Salut,

    Citation Envoyé par azaouali Voir le message
    pourquoi il m'affiche les derniers lignes de ma requête alors que quand je print i et j tout semble bien ce passé , je promet que ce sera ma dernière question
    Sans pouvoir reproduire...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Remplissage automatique tableau Excel
    Par Ternote dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 23/05/2019, 09h04
  2. remplissage tableau excel
    Par zayn dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/07/2006, 21h40
  3. [VBA - E] Automation et remplissage d'un tableau Excel
    Par sat478 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/07/2006, 09h10
  4. Remplissage aléatoire sur Excel
    Par Trooper2 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/06/2006, 18h14
  5. Remplissage feuille excel à partir d'un dbGrid
    Par izidor dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 22/02/2006, 18h09

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