Planning - insertion ligne

Bonjour,

Étant débutante de première catégorie en VBA, j'aurais besoin de quelques petits tuyaux...

Voilà, je suis en train de faire un planning pour des décomptes mensuels d'heures.

J'ai trouvé comment insérer automatiquement le mois avec des listes déroulantes et tout, comment faire correspondre le jour en fonction de la date et tout. Entre chaque semaine, donc après chaque dimanche, j'aimerais insérer une ligne de total pour faire d'autres calculs par la suite.

Le problème que je rencontre est lors de l'insertion de la ligne. Je n'arrive pas à écrire la bonne macro. Je me dis que c'est peut être parce que les valeurs sont du texte et non des données.

Si quelqu'un savait comment e dépatouiller ce serait super !

Merci

Bonjour,

Si j'ai bien compris votre problème c'est d'insérer une ligne de "total" à la fin de vos 7 jours de chaque semaine?

Avec les macro on peux aussi bien insérer des valeurs numériques que du texte ou encore des formules.

Pouvez vous mettre le code déjà réalisé?

Cordialement,

Oui c'est ça !

Le code ne rime pas à grand chose, étant débutante, il est tout faux, et je ne l'ai pas enregistré je crois bien ! Mais je met le fichier pour clairement voir ce que je souhaiterais

Re,

Beaucoup plus facile de vous aidez avec ça

Voici en gros la démarche:

Les jours seront toujours dans la colonne "A" et le dernier jour de la semaine sera toujours "dim" (pour que la macro fonctionne bien).

Vous devez réaliser une boucle (for par exemple) qui va balayer la colonne A. A chaque fois que la valeur de la cellule sera égale à "dim" il faut insérer une ligne.

Sur la ligne insérée, vous pouvez mettre la chaine de caractère "TOTAL" (par exemple).

Un début de macro (à finaliser of course):

'Détermination de la dernière ligne du tableau dans la colonne A
Dim DerniereLigne As Long
DerniereLigne =Worksheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row

'Indice de ligne
Dim i As Long

'Déclaration d'une chaine de caractère
Dim Day As String

'i = 7 car votre tableau commence à la ligne 7
For i = 7 To DerniereLigne
    Day = Worksheets("Feuil1").Cell(i, 1).Value
    If Day = "dim" Then
        INSERER UNE LIGNE
....
....

Jusque là, j'ai compris mais lorsque je tape le code pour insérer une ligne, j'ai une message d'erreur, "erreur d'exécution 424 : objet requis"

Sub Insertionligne()
DerniereLigne = Worksheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
Dim i As Long
Dim Day As String
  For i = 7 To DerniereLigne
    Day = Worksheets("Feuil1").Cells(i, 1).Value
    If Day = "dim" Then
    EntireRow.Insert xlShiftDown
    End If
Next i
End Sub

Bonjour,

C'est normal car le programme ne sais pas où insérer cette nouvelle ligne. Il faut lui donner à minima une cellule.

Essayez avec:

'On donne i+1 à la cellule car le i actuelle est sur la ligne avec le "dim" donc sur la ligne +1
Worksheet("Feuil1").Cells(i+1, 1).EnrireRow.Insert

'Attention à la suite car l'indice de ligne va changé du fait qu'on insert une ligne.

Cordialement,

Super !! Jusque là, tout fonctionne, j'ai continué à avancer ma macro mais maintenant, je cherche à faire des sommes ce cellules entre mes deux lignes "Total" sauf que j'ai cherché et essayé différentes choses, je en suis pas sur d'avoir la bonne technique.

Au début je partais je partais sur l'idée de faire une somme avec les cellules (i-1,3) + (i-2,3) + (i-3,3) + (i-4,3) + (i-5,3) + (i-6,3) + (i-7,3)

Sauf qu'après réflexion je me suis dis que vu que mon tableau ne démarrait pas forcément un lundi, l'idée ne tenait plus.

Du coup je suis un peu perdue ...

Si quelqu'un avait une quelconque idée, je suis preneuse

Bonjour,

Partez du cas où la semaine compte bien 7 jours. Ensuite réfléchissez aux "cas particuliers" comme celui que vous décrivez.

Pour ce cas précis, vous devez tester que votre semaine démarre bien le lundi c'est à dire quand dans la cell(i-7,3) la value doit être "lundi" (ou "lun" je sais plus comment c'est écrit). Du coup vous devez faire un paquet de IF pour tester la valeur du jour et donc adapter le calcul en fonction du cas où vous êtes.

Est-ce assez clair?

Cordialement,

Je pense que oui, je vais essayer de voir ça !

Merci beaucoup !

Rechercher des sujets similaires à "planning insertion ligne"