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

Macros et VBA Excel Discussion :

Calcul de dates incorrect


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 20
    Points : 4
    Points
    4
    Par défaut Calcul de dates incorrect
    Bonsoir à toutes et tous !

    Je ne comprends pas pourquoi le programme dans le fichier en annexe ne me renvoie pas les bonnes dates.

    Merci beaucoup pour votre aide !
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonsoir,

    La formule en B1 est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(JOURSEM(A1;2)=3;A1+3;SI(JOURSEM(A1;2)=7;A1+4;"A VOIR"))
    A partir de là tu devrais pouvoir extrapoler pour la colonne C

    (A1;1) --> dimanche = 1 --> samedi = 7
    (A1;2) --> lundi = 1 --> dimanche = 7
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    Ce que je souhaite, c'est que si c'est un mercredi, la date de la cellule de droite devienne le samedi et le mercredi si c'est un samedi.

    Thx !!

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    Donc je pense que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(JOURSEM(A1;2)=3;B1+3;SI(JOURSEM(A1;2)=6;A1+4;"A VOIR"))
    doit être correct.

  5. #5
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    lundi = 1, mardi = 2, mercredi = 3, jeudi = 4, vendredi = 5, samedi = 6, dimanche = 7

    en effet, la 2ème condition est 6 et pas 7 (sorry)
    donc en B1 ça donne...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(JOURSEM(A1;2)=3;A1+3;SI(JOURSEM(A1;2)=6;A1+4;"A VOIR"))
    bien vu
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    OK, super.

    Maintenant, toujours pour ce programme, mais rien à voir :

    Quelle formule utiliser pour dire que :

    Si B14=10, mettre une bordure intérieure ("croix") aux 10 cellules à droite, donc de C14 à L14.

    Merci !

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    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
    Option Explicit
    Sub test2()
     
    Dim c As Range
     
    If Cells(14, 2).Value = 10 Then
     
    For Each c In Range("c14:L14")
        With c.Borders(xlDiagonalDown)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With c.Borders(xlDiagonalUp)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        c.Borders(xlEdgeLeft).LineStyle = xlNone
        c.Borders(xlEdgeTop).LineStyle = xlNone
        c.Borders(xlEdgeBottom).LineStyle = xlNone
        c.Borders(xlEdgeRight).LineStyle = xlNone
        c.Borders(xlInsideVertical).LineStyle = xlNone
    Next c
    End If
     
    End Sub
    Ca marche, donc OK.

    Thx !

  8. #8
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Juste pour économiser de l'encre , toutes les lignes se terminant par xlNone tu peux les supprimer, en gros pas besoin de lui dire "tu ne dois pas mettre de ligne"

    Idem pour les lignes ColorIndex = xlAutomatic, si aucune précision quant à la couleur, il prendra par défaut la couleur "Auto"

    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    Bien sûr, merci !!

    Autre problème dans le fichier suivant.

    Je ne comprends pas pourquoi le programme plante.

    Merci pour l'aide !
    Fichiers attachés Fichiers attachés

  10. #10
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    SAlut
    Normal, fais du pas a pas et tu verra que tu essais de mettre dans number le contenu d'une cellule vide ... hors le vide c'est pas numeric

    En se qui concerne la macro en elle meme, tu devrais mettre tes indentement comme il faut par ce quela c'est illisible.
    Une autre chose
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
           number = Cells(ligne, colonne - 1).Value '?????
            If Cells(ligne, colonne - 1).Value = number Then '????? pas de gros risque que ce soit pas le cas
    Faudra m'expliquer a quoi ca sert ^^
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    La cellule n'est pas vide ; colonne 2, ligne 2 = rien mais bien dans les autres cellules, donc le problème ne vient pas de là.

    Pour la ligne avec "number", j'essaye de lui faire lire les valeurs introduites en colonne B (chaque fois décalées par rapport au cellules où il faut mettre des croix) et mettre un nombre de croix correspondant aux nombres introduits dans les colonnes.

    THx

  12. #12
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    Re
    Ben tu m'excuse mais dans le tableau que tu as joins les cellules sont vide et il suffit d'une cellule vide pour planter ta macro.
    Pour ton explication, désolé mais je ne saisi pas, je sais que toi tu es "dedans" mais pas nous alors sois plus claire stp

    Pour le bout de code dont je te parlais avant c'est comme si tu disais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    I = 8
    If 8 = I Then
    y'a une des 2 ligne qui ait de trop ...
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    Très juste, désolé.

    J'ai un peu modifié le fichier et il y a un résultat mais qui n'est pas le bon.

    Je voudrais "simplement" qu'en fonction de la valeur entrée dans la colonne B, les cellules "en regard" reçoivent cette bordure intérieure en croix.

    Je continue de mon côté.

    Merci de m'aider !
    Fichiers attachés Fichiers attachés

  14. #14
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    Re
    Deja fais des indentation comme il faut

    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
    Sub test3()
     
    Dim c As Range, number As Integer
    Dim ligne%, colonne%
     
    For ligne = 2 To 23
        For colonne = 3 To 12
            number = Cells(ligne, colonne - 1).Value
            If Cells(ligne, colonne - 1).Value = number Then
                For Each c In Range("C2:L23")
                    With c.Borders(xlDiagonalDown)
                        .LineStyle = xlContinuous
                        .Weight = xlThin
                    End With
                    With c.Borders(xlDiagonalUp)
                        .LineStyle = xlContinuous
                        .Weight = xlThin
                    End With
                Next c
            End If
        Next colonne
    Next ligne
     
    End Sub
    Le probleme reste le meme avec ton If
    J'essais de comprendre.
    +

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  15. #15
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    Re
    Je devine pas trpo ce que tu veux faire, regarde ca si ca t'inspire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub test4()
    Dim CelCol As Range, C As Range
     
    For Each CelCol In Sheets(1).Range("B2:B23") 'on scann la colonne deja
        If CelCol.Value <> "" Then
            With Sheets(1).Range(Sheets(1).Cells(CelCol.Row, "C"), Sheets(1).Range("B1").End(xlToRight).Offset(CelCol.Row - 1, 0))
                .Borders(xlDiagonalDown).LineStyle = xlContinuous
                .Borders(xlDiagonalDown).Weight = xlThin
                .Borders(xlDiagonalUp).LineStyle = xlContinuous
                .Borders(xlDiagonalUp).Weight = xlThin
            End With
        End If
    Next
    End Sub
    ca met des croix dans toutes les cases de la ligne dons la case b est renseignée.
    [Edit]
    Ou peut etre plutot ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub test4()
    Dim CelCol As Range, C As Range
     
    For Each CelCol In Sheets(1).Range("B2:B23") 'on scann la colonne deja
        If CelCol.Value <> "" Then
            With Sheets(1).Range(Sheets(1).Cells(CelCol.Row, "C"), Sheets(1).Range("B1").End(xlToRight).Offset(CelCol.Row - 1, -(10 - CInt(CelCol.Value2))))
                .Borders(xlDiagonalDown).LineStyle = xlContinuous
                .Borders(xlDiagonalDown).Weight = xlThin
                .Borders(xlDiagonalUp).LineStyle = xlContinuous
                .Borders(xlDiagonalUp).Weight = xlThin
            End With
        End If
    Next
    End Sub
    Cette fois ça met le nombre de croix en fonction de la somme....
    Mme Irma êtes vous parmi nous, vos lumières nous seraient utiles
    [/Edit]

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  16. #16
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    Super, ça marche bien !

    Sauf que je ne capte pas tout ;-)

    J'aurais bien besoin de tes lumières !

    Merci beaucoup !!!

  17. #17
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    SAlut
    Quel code as tu gardé, et quel renseignement tu souhaite?

    [Edit]
    Je pense que c'est cette ligne qui te pose probleme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With Sheets(1).Range(Sheets(1).Cells(CelCol.Row, "C"), Sheets(1).Range("B1").End(xlToRight).Offset(CelCol.Row - 1, -(10 - CInt(CelCol.Value2))))
    Alors on va decomposer.

    CelCol représente une case contenant une des somme, déterminé en fonction de for each, donc on navigue de l'une après la suivante.

    Pour selectionner une plage de cellule de "A1" à "A6", par exemple, je fais comme ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Range(Range("A1"),range("A6"))
    On retrouve cette partie la dans la ligne du début ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With Sheets(1).Range(Sheets(1).Cells(CelCol.Row, "C"), Sheets(1).Range("B1").End(xlToRight).Offset(CelCol.Row - 1, -(10 - CInt(CelCol.Value2))))
    A la place de j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets(1).Cells(CelCol.Row, "C")
    qui me permet de sélectionner la cellule qui se trouve sur la même ligne que CelCol, mais dans la colonne C, cette cellule est donc la 1ere de notre futur sélection.

    Ensuite a la place de nous avons
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets(1).Range("B1").End(xlToRight).Offset(CelCol.Row - 1, -(10 - CInt(CelCol.Value2)))
    Procédons par étapes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets(1).Range("B1").End(xlToRight)
    On se place sur la cellule "B1" et on fait la combinaison de touche (Fin + flèche droite), ce qui a pour effet de déplacer notre position jusqu'à la dernière case non vide de la ligne (puisque B1 était pleine).On pointe donc sur la dernière date en haut de ton fichier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    .Offset(CelCol.Row - 1, -(10 - CInt(CelCol.Value2)))
    Offset permet de donner un décalage en nombres de ligne et de colonne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Offset(Nbrligne,Nbrcolonne)
    NbrLigne = CelCol.Row - 1
    Pour aller a la ligne ou se trouve CelCol il faut que nous nous décalions vers le bas. Nous somme a la ligne une il ne nous reste donc plus qu'a nous décaler du nombre de ligne ou se trouve CelCol moins une ligne (puisqu'on part de la ligne 1 ça crée un décalage)

    NbrCol = -(10 - CInt(CelCol.Value2))
    On regarde la valeur contenu dans CelCol, pas value mais value2, value2 ne prête pas attention au formatage de la cellule
    Value = 1,00€ => value2 = 1

    CInt permet de transtyper cette chaine de caractères en valeur numérique de type Integer (entier).
    On retranche cette valeur a 10 (ce qui est maladroit de ma part d'ailleurs j'y reviendrais)
    Puisqu'on a 10 colonne, on enlève le nombre de colonne qui doivent être cochées
    Ainsi on va bien se décaler vers la gauche afin que notre sélection ne comporte le bon nombre de case

    exemple 7 euro -> 7 cases à remplir.
    10-7 = 3
    Une fois que l'on pointe sur notre cellule tout au bout a droite, il faut bien que l'on se décale de 3 colonnes vers la gauche pour que notre sélection ne comporte plus que 7 cases.
    Tu notera le moins tout au début pour bien se décaler dans le bon sens
    NbrCol = -(10 - CInt(CelCol.Value2))

    Ben voila normalement tu as tout compris

    On sélectionne la 1ere cellule contenant la somme
    On commence une sélection a la case juste a droite de la cellule contenant la somme
    On vas tout au bout du tableau et on revient sur nos pas pour ne sélectionner que le nombre de cellules a cochées.

    A++
    Qwaz
    [/Edit]

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  18. #18
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    Je ne comprends pas la commande suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With Sheets("Paiements (Série 11)").Range(Sheets("Paiements (Série 11)").Cells(CelCol.Row, "C"), Sheets("Paiements (Série 11)").Range("B1").End(xlToRight).Offset(CelCol.Row - 1, -(10 - CInt(CelCol.Value2))))
    Je me demande aussi s'il est possible d'en faire une fonction plutôt qu'une procédure.

    Je me rends compte que le programme peut réellement être intéressant s'il peut s'adapter aux modifications, donc "en cours de frappe".

    En plus, comment pourrait-on (légèrement) adapter le code pour que le programme tienne compte des éventuelles dates qu'on ajouterait ?

    --> Exemple : appliquer le range jusqu'à "M23" au lieu de "L23"

    Thx !!!!

  19. #19
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    Rectification : OK pour le code.

    1.) Reste mon problème de transformer la procédure en fonction.

    2.) Si je mets "0" en B... (aucun paiement effectué), ça ne marche pas super.

    MERCI ;-)

  20. #20
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    J'ai edité mon message precedent avec plein d'explication je vais en rajouter d'autre en editant celui ci, mais tu as deja du boulot avec l'autre

    [Edit]
    Comme dis dans mon autre message j'ai commis une maladresse
    Citation Envoyé par Qwazerty
    On retranche cette valeur a 10 (ce qui est maladroit de ma part d'ailleurs j'y reviendrais)
    En effet ici contrairement au reste de mon code je n'est pas tenu compte du nombre de colonne qui peuvent varier

    Pour corriger ca il faut remplacer "10" par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (Sheets(1).Range("B1").End(xlToRight).Column - CelCol.Column)
    On regarde le numero de la derniere colonne et on lui soustrait celui de celCol, aon pourait aussi lui soustraire tout simplement 2 je suis en train de pensais, puisque le tableau commence toujours a la colonne3

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (Sheets(1).Range("B1").End(xlToRight).Column - 2)
    Voila ca c'est fait, je regarde pour la valeur 0

    [Edit2]
    On va tout simplement ne pas executer le code si la valeur est "0"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    For Each CelCol In Sheets(1).Range("B2:B23") 'on scann la colonne deja
        If CelCol.Value <> "" And CelCol.Value2 > 0 Then
    J'ai juste rajouté And CelCol.Value2 > 0 a la condition If
    [/Edit2]
    A++
    Qwaz
    [/Edit]

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

Discussions similaires

  1. [Calendar]Problème de calcul de date
    Par valerie90 dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 08/12/2004, 12h13
  2. COUNT + Calcul de DATE
    Par cassi2 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 28/10/2004, 16h35
  3. Resutlat de calcul sur date formaté
    Par neness dans le forum SQL
    Réponses: 6
    Dernier message: 16/06/2004, 15h34
  4. SCRIPT CALCULANT LA DATE
    Par Redouane dans le forum ASP
    Réponses: 3
    Dernier message: 17/03/2004, 09h10
  5. Calcul sur date
    Par Thomad dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/09/2003, 08h55

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