inserer une ligne quand 2 celulles sont différentes

anthonyhk

XLDnaute Junior
Bonjour,

je fais appel à vous car je bloque un peu sur ma macro.
En effet, j'aimerai insérer une ligne quand 2 cellules sont différentes. ma cellule contient une date ou parfois une date avec une heure.

J'arrive bien à insérer une ligne quand les cellules sont différentes mais quand la cellule a la même date mais l'une avec une heure et l'autre sans ou l'une et l'autre avec une heure différente, une ligne s'insère.

Pouvez vous m'aider svp ?!

Merci d'avance

:)
 

Pièces jointes

  • agenda test 2.xls
    58 KB · Affichages: 45
Dernière édition:

anthonyhk

XLDnaute Junior
Re : inserer une ligne quand 2 celulles sont différentes

Bonjour,

j'aimerais insérer une ligne lorsque la date est différente.
Mais il y a le problème de certaines cellules qui ont la date et l'heure.

au final, j'aimerais que lorsque la date est différente, il y a une insertion de ligne.

Pour info, ces données proviennent d'une extraction, donc je ne peux pas mettre les dates dauns une colonne, et l'heure dans une autre :)
 

EX_BZH

XLDnaute Nouveau
Re : inserer une ligne quand 2 celulles sont différentes

Dans ce cas, je vous conseillerai d'utiliser la fonction left qui permet de sélectionner qu'une partie des données de la cellules.

Vous ne testez ainsi que les caractères représentant la date.

Soit vous mettez vos dates en forme pour qu'elles aient toutes le même nombre de caractère (10)
Soit vous conserver vos dates actuelles (entre 9 et 10 caractères), et tester les 9 puis les 10 premiers caractères.
 

Papou-net

XLDnaute Barbatruc
Re : inserer une ligne quand 2 celulles sont différentes

Bonjour anthonyhk, EX_BZH, le Forum,

Voici une proposition de modification de la macro 'hop" qui devrait donner le résultat escompté :

Code:
Sub hop()
Dim i As Integer, a As Integer, fin As Integer

a = 7
fin = Range("A65536").End(xlUp).Row
'Worksheets("prevision").Select <-- Ligne inutile puisque le bouton qui lance la macro est sur cette feuille
For i = a To fin
    If Day(Cells(i + 1, 1)) <> Day(Cells(i, 1)) Or Month(Cells(i + 1, 1)) <> Month(Cells(i, 1)) Or _
      Year(Cells(i + 1, 1)) <> Year(Cells(i, 1)) Then
        Range("A" & i + 1).EntireRow.Insert
        i = i + 1
    End If
Next i
End Sub
Cordialement.
 

Discussions similaires

Réponses
9
Affichages
256

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 685
Messages
2 090 943
Membres
104 704
dernier inscrit
uranium