Parcourir deux colonnes dans un seul code

Fermé
mimi - Modifié le 20 nov. 2023 à 17:04
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 - 21 nov. 2023 à 19:41

Bonjour,

je souhaite parcourir la colone "A" qui contient des dates, afin de faire une soustraction de 21 jours et le resultat se met automatiquement dans la colonne B.

Je suis un peu perdu dans les boucles sachant que le nombre de ligne A peut varier.

voici mon code : ( la colonne se remplisse pas totalement !!)

Merci de votre aide

Option Explicit

Sub date_propose()

Dim resultat As Date
Dim i As Integer
Dim J As Integer
With ThisWorkbook.Sheets("Feuil1")

For i = .Range("A" & .Rows.Count).End(xlUp).Row To 2 Step -1

resultat = Range("A" & i).Value

resultat = resultat - 21

Range("B" & i).Value = resultat
      
Next i

End With

End Sub


Windows / Firefox 118.0

A voir également:

3 réponses

f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 1 711
20 nov. 2023 à 17:23

Bonjour,

Une facon de faire

Sub date_propose()
    Dim resultat As Date
    Dim i As Long
    
    With ThisWorkbook.Sheets("Feuil1")
        Derlig = .Range("A" & .Rows.Count).End(xlUp).Row
        For i = 2 To Derlig
            .Range("B" & i).Value = .Range("A" & i).Value - 21
        Next i
    End With
End Sub
0

C'est le meme raisonement , mais ce code ne rempli aucune cellule de la colonne B !!

0
f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 1 711 > mimi
20 nov. 2023 à 21:28

Re,

Chez moi ça marche très bien!

La colonne A à des dates dans les cellules de votre fichier?

Demain, je vous mettrai un fichier à dispo ou vous mettez votre fichier à dispo

0
f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 1 711
21 nov. 2023 à 07:39

Bonjour,

Fichier avec le code que j'ai mis a dispo

 https://www.cjoint.com/c/MKvgNh7P0Dg

0
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
21 nov. 2023 à 15:34

Bonjour à tous les deux

>mimi : si tu as mis ton code dans le module de la feuille, il doit fonctionner tel que, si tu l'as mis dans un module général (Module1 par ex), et que tu l'exécutes depuis une autre feuille,  il va manquer un point'.' devant Range("A" & i).value et Range("B" & i) .value pour attacher ces références à la feuille "Feuil1" (With .... End With)

Pour ce qui est de ta boucle, il vaut mieux utiliser une variable qui contiendra la dernière ligne comme l'a proposé f894009 histoire de ne pas la recalculer à chaque tour.

Cdlmnt

Sub date_propose()
Dim resultat As Date
Dim i As Integer
Dim J As Integer
With ThisWorkbook.Sheets("Feuil1")
  For i = .Range("A" & .Rows.Count).End(xlUp).Row To 2 Step -1
    resultat = .Range("A" & i).Value
    resultat = resultat - 21
    .Range("B" & i).Value = resultat
  Next i
End With
End Sub
0
f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 1 711
21 nov. 2023 à 17:54

Bonjour,

Ca roule?

0
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428 > f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024
21 nov. 2023 à 19:41

salut f940009, fraichou, mais ça roule ;-)

Bonne soirée

0