Problème macro insertion ligne

gillmo

XLDnaute Occasionnel
bonjour,

sur un fichier, j'ai besoin d'insérer une ligne grisé après un vendredi ou avant un lundi, pour différencier les semaines.

J'ai une macro (insert), mais celle ci ne fonctionne pas, et j'aimerai comprendre pourquoi.

Je vous joins un fichier test pour voir si vous avez une réponse à me donner.

merci.
 

Pièces jointes

  • test1.xlsm
    40.6 KB · Affichages: 32
  • test1.xlsm
    40.6 KB · Affichages: 33

Modeste

XLDnaute Barbatruc
Re : Problème macro insertion ligne

Bonjour gillmo,

As-tu essayé d'exécuter ta macro en "pas-à-pas"? Si oui, tu devrais constater qu'elle s'interrompt très tôt ... Que vaut Range("A140").End(xlUp).Row, au début du code?
Partant de ce que tu constateras, tu devrais pouvoir trouver une solution ... Si pas, dis-le nous, on te donnera un indice supplémentaire :)

Salut gilbert_RGI j'ai eu le même doute, mais on passe bien du vendredi au ... lundi dans la suite des dates
 

gilbert_RGI

XLDnaute Barbatruc
Re : Problème macro insertion ligne

Salut gilbert_RGI j'ai eu le même doute, mais on passe bien du vendredi au ... lundi dans la suite des dates

oui mais c'est un ou qu'il faut et non un et , il n'est pas possible d'avoir ces deux conditions à la fois ;-)))
 

gilbert_RGI

XLDnaute Barbatruc
Re : Problème macro insertion ligne

comme ceci j'arrive à un résultat est-ce le bon ?

VB:
Sub insert()
    Dim DerLig As Integer
DerLig = Sheets("Fiche").Range("A140").End(xlUp).Row + 1
    For i = 9 To DerLig 
        On Error Resume Next
        With Sheets("Fiche")
            If Cells(i, 1) <> "" Then
            Debug.Print Weekday(Cells(i, 1), vbFriday) 'pour vérification
            Debug.Print Weekday(Cells(i + 1, 1), vbMonday) 'pour vérification

            If Weekday(Cells(i, 1), vbFriday) = 1 And Weekday(Cells(i + 1, 1), vbMonday) = 1 Then
                Cells(i + 1, 1).EntireRow.insert , copyorigin:=xlFormatFromRightOrBelow
                Range(Cells(i + 1, 1), Cells(i + 1, 4)).Select
                With Selection.Interior
                    .ColorIndex = 15
                End With
                i = i + 1
            End If
            End If
        End With
    Next i
End Sub
 
Dernière édition:

gillmo

XLDnaute Occasionnel
Re : Problème macro insertion ligne

bonjour à tous, et merci de vous êtes penché sur mon problème

pour répondre à Modeste, effectivement la macro s’arrête très tôt et je ne comprend pas pourquoi,
je demande de la ligne 9 jusqu'à la dernière ligne non vide et je ne vois pas pourquoi il ne comprend pas cette demande.

Gilbert, je dois avoir un souci, quand je mets ta macro, il ne se passe rien, je n'ai pas d'insertion de ligne.

Je continue de chercher
 

Modeste

XLDnaute Barbatruc
Re : Problème macro insertion ligne

Re-bonjour,

Tu n'as pas répondu à la question principale: que vaut Range("A140").End(xlUp).Row ... Comme tu as des formules jusqu'en A140, lorsque tu lances ta macro, tu "remontes" en fait jusqu'en ligne 8 et donc puisque la boucle For est initialisée à 9, de 9 ... à 8, Excel a vite fait le tour!
La macro de Gilbert donne le même résultat ... pour les mêmes raisons. Ce que toi seul sait c'est si les formules doivent bien être recopiées jusqu'en A140 (les premières lignes sont des dates "en dur") et si le tableau s'étendra plus bas dans certains cas?

Dans un premier temps, remplace -dans l'instruction concernée- 140 par 141 et refais le test.
 

gillmo

XLDnaute Occasionnel
Re : Problème macro insertion ligne

Tu as raison Modeste, en fait je cherche la dernière ligne non vide ou plutôt ne contenant pas de date. J'ai besoin d'avoir des formules jusqu'en A140 car elles peuvent potentiellement contenir des infos. En fait les dates qui sont en dur dans le fichier, proviennent des formules. j'avais copier les dates en dur pour éviter les liaisons lors de l'envoi du fichier.

Le fait de remplacer 140 par 141 règle le problème, et le fichier de Gilbert répond aussi à ma problèmatique. je vais analyser tout ça.

merci et je reviens vers vous si je rencontre une difficulté
 

Discussions similaires

Statistiques des forums

Discussions
311 724
Messages
2 081 936
Membres
101 844
dernier inscrit
pktla