[VBA excel] Parcours d'une colonne
Résolu
artoon_42
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
-
Le Pingou Messages postés 12250 Date d'inscription Statut Contributeur Dernière intervention -
Le Pingou Messages postés 12250 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je suis débutant en macro excel et en VBA.
Je souhaiterais créer une macro s'exécutant à l'ouverture du classeur excel.
Je voudrais que cette parcoure la colonne G de G2 à G99. Cette colonne contient des dates. Si le mois de la date (G[i] + le nombre de jours contenue dans L6) est inférieur au mois actuel on supprime le contenue des cellules D[i] et E[i].
Voila où j'en suis.
Private Sub Workbook_Open()
Dim i As Integer
Date = Date
i = 1
Do While (i<99)
i = i + 1
If ( Month(Range("G" & i).Value + Range("L6").Value )< Month(Date) ) Then
Range("E" & i).Value = ""
Range("D" & i).Value = ""
End If
Loop
End Sub
Mais ce code me renvoi des erreurs.
Voyez vous d'où viennent les erreurs ?
Cordialement
Je suis débutant en macro excel et en VBA.
Je souhaiterais créer une macro s'exécutant à l'ouverture du classeur excel.
Je voudrais que cette parcoure la colonne G de G2 à G99. Cette colonne contient des dates. Si le mois de la date (G[i] + le nombre de jours contenue dans L6) est inférieur au mois actuel on supprime le contenue des cellules D[i] et E[i].
Voila où j'en suis.
Private Sub Workbook_Open()
Dim i As Integer
Date = Date
i = 1
Do While (i<99)
i = i + 1
If ( Month(Range("G" & i).Value + Range("L6").Value )< Month(Date) ) Then
Range("E" & i).Value = ""
Range("D" & i).Value = ""
End If
Loop
End Sub
Mais ce code me renvoi des erreurs.
Voyez vous d'où viennent les erreurs ?
Cordialement
A voir également:
- [VBA excel] Parcours d'une colonne
- Déplacer une colonne excel - Guide
- Trier colonne excel - Guide
- Formule somme excel colonne - Guide
- Liste déroulante excel - Guide
- Formule moyenne excel plusieurs colonnes - Guide
11 réponses
bonjour
Date est une fonction qui renvoie comme résultat la date du système donc
D = Date, affectera à la variable D (de type date) la date du système
Date = Date n'est pas correct
supprimes déjà cette ligne et ça devrait aller mieux
il va de soi que
la colonne G est formatée avec l'un des formats date
la cellule L6 est au format nombre
bonne suite
Date est une fonction qui renvoie comme résultat la date du système donc
D = Date, affectera à la variable D (de type date) la date du système
Date = Date n'est pas correct
supprimes déjà cette ligne et ça devrait aller mieux
il va de soi que
la colonne G est formatée avec l'un des formats date
la cellule L6 est au format nombre
bonne suite
J'ai corrigé mais maintenant il me dit Erreur '13': Incompatibilité de type
La colonne D est de type date et la colonne E est de type standard.
Private Sub Workbook_Open()
Dim i As Integer
i = 10
Do While (i < 99)
i = i + 1
If (Month(Range("G" & i).Value + Range("L6").Value) < Month(Date)) Then
Range("E" & i).Clear
Range("D" & i).Clear
End If
Loop
End Sub
La colonne D est de type date et la colonne E est de type standard.
Private Sub Workbook_Open()
Dim i As Integer
i = 10
Do While (i < 99)
i = i + 1
If (Month(Range("G" & i).Value + Range("L6").Value) < Month(Date)) Then
Range("E" & i).Clear
Range("D" & i).Clear
End If
Loop
End Sub
J'ai modifier de nouveau
Private Sub Workbook_Open()
Dim i As Integer
i = 10
Do While (i < 99)
If (Month(DateAdd(d, Range("L6").Value, Range("G" & i).Value)) < Month(Date)) Then
Range("E" & i).Clear
Range("D" & i).Clear
End If
i = i + 1
Loop
End Sub
J'obtiens le message d'erreur : Erreur d'exécution '5: Argument ou appel de procédure incorrect sur la ligne du SI
Private Sub Workbook_Open()
Dim i As Integer
i = 10
Do While (i < 99)
If (Month(DateAdd(d, Range("L6").Value, Range("G" & i).Value)) < Month(Date)) Then
Range("E" & i).Clear
Range("D" & i).Clear
End If
i = i + 1
Loop
End Sub
J'obtiens le message d'erreur : Erreur d'exécution '5: Argument ou appel de procédure incorrect sur la ligne du SI
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
J'ai testé cette procédure et c'est parfait (déclaration de variable modifier):
J'ai testé cette procédure et c'est parfait (déclaration de variable modifier):
Private Sub Workbook_Open() Dim i As Long i = 1 Do While (i < 99) i = i + 1 If (Month(Range("G" & i).Value + Range("L6").Value) < Month(Date)) Then Range("E" & i).Clear Range("D" & i).Clear End If Loop End Sub
D'accord merci mais je vient de me rendre compte qu'il ne faut pas seulement que je compare les mois mais aussi les années pour éviter les problème
Private Sub Workbook_Open()
Dim i As Long
i = 10
Do While (i < 99)
If (DateSerial(Year(DateAdd(d, Range("L6").Value, Range("G" & i).Value)), Month(DateAdd(d, Range("L6").Value, Range("G" & i).Value)), 1) < DateSerial(Year(Date), Month(Date), 1)) Then
Range("E" & i).Clear
Range("D" & i).Clear
End If
i = i + 1
Loop
End Sub
Je reforme donc mes dates
mais la ligne du si me renvoi Erreur d'exécution '5: Argument ou appel de procédure incorrect .
Private Sub Workbook_Open()
Dim i As Long
i = 10
Do While (i < 99)
If (DateSerial(Year(DateAdd(d, Range("L6").Value, Range("G" & i).Value)), Month(DateAdd(d, Range("L6").Value, Range("G" & i).Value)), 1) < DateSerial(Year(Date), Month(Date), 1)) Then
Range("E" & i).Clear
Range("D" & i).Clear
End If
i = i + 1
Loop
End Sub
Je reforme donc mes dates
mais la ligne du si me renvoi Erreur d'exécution '5: Argument ou appel de procédure incorrect .
Bonjour,
Eh bien qu'elle est exactement le critère de contrôle ?
Cela ne sert à rien de modifier la condition [If] sans avoir le critère exact.
Eh bien qu'elle est exactement le critère de contrôle ?
Cela ne sert à rien de modifier la condition [If] sans avoir le critère exact.
Désolé,
Le critère de contrôle est la comparaison sur le mois et l'année entre la date courante et la date contenue dans une cellule de la colonne G à laquelle j'ajoute le contenue de la cellule L6 ; cette dernière doit être inférieur à la date courante pour entré dans le si.
Le critère de contrôle est la comparaison sur le mois et l'année entre la date courante et la date contenue dans une cellule de la colonne G à laquelle j'ajoute le contenue de la cellule L6 ; cette dernière doit être inférieur à la date courante pour entré dans le si.
Bonjour,
Pour ce soir c'est la dernière.
Cette procédure :
Salutations.
Le Pingou
Pour ce soir c'est la dernière.
Cette procédure :
Private Sub Workbook_Open() Dim i As Long Dim critdate As Date critdate = DateSerial(Year(Date), Month(Date), 1) i = 1 Do While (i < 99) i = i + 1 If (Range("G" & i).Value + Range("L6").Value) > critdate Then Range("E" & i).Clear Range("D" & i).Clear End If Loop End Sub--
Salutations.
Le Pingou