Recopier ligne si date et heure identique
Bonjour,
j'avais auparavant créé un sujet qui était "recopier ligne si date identique".
J'ai essayé d'utiliser la même macro qu'il m'avait été proposée dans ce sujet, mais il semble que le fait que la colonne contienne une date et heure ( nombre décimal ?) au lieu d'une date seulement (nombre entier ?) provoque une erreur. Et je ne sais pas comment la corriger. ( ou peut-être que l'erreur vient d'autre chose bien sûr ^^" )
Voici le code utilisé :
Option Explicit
Sub ss()
Dim i As Integer, j As Integer, Date_Référence As Long
Application.ScreenUpdating = False
Range("C2:P" & Rows.Count).ClearContents
For i = 2 To Range("B" & Rows.Count).End(xlUp).Row
Date_Référence = CLng(Range("B" & i))
j = Application.WorksheetFunction.Match(CLng(Date_Référence), Sheets("Feuil1").Range("B:B"), 0)
Sheets("Feuil1").Range("C" & j & ":P" & j).Copy Range("C" & i)
Next i
End Sub
J'ai essayé de modifier par exemple "j as double" au lieu d'integer, ou d'enlever le CLng, mais ça ne change rien.
Je vous joins également un fichier exemple.
Merci beaucoup pour votre aide ! :)
Marusanmarukyû ( ○三○九 )
Bonjour Marusanmarukyû ( ○三○九 )
Ce n'est pas j que tu dois déclarer en 'Double' mais la variable Date_Référence.
Ensuite, je ne comprends pas ton code...
Tu parcours chaque ligne de ta colonne B et tu copies les données des colonnes C à P.
Mais en début de macro, tu effaces le contenu de ces colonnes !! Il n'y a donc plus de données
Ou bien quelque chose m'échappe ??
Bonjour
Bonjour vba-new
Comme dit vba-new la variable Date_Référence doit être déclarée en double, car tu as une heure avec la date en colonne B
Essayes cette macro
Sub ss()
Dim i As Integer, j, Date_Référence As Double
Application.ScreenUpdating = False
Range("C2:P" & Rows.Count).ClearContents
For i = 2 To Range("B" & Rows.Count).End(xlUp).Row
Date_Référence = Range("B" & i)
j = Application.Match(Date_Référence, Sheets("Feuil1").Range("B:B"), 0)
If Not IsError(j) Then
Sheets("Feuil1").Range("C" & j & ":P" & j).Copy Range("C" & i)
End If
Next i
End Sub
Banzai64 a écrit :Bonjour
Bonjour vba-new
Comme dit vba-new la variable Date_Référence doit être déclarée en double, car tu as une heure avec la date en colonne B
Essayes cette macro
Bonsoir Banzai64,
Merci beaucoup ! je viens d'essayer et cela semble marcher. J'avais oublié de préciser que j'avais également essayer de "déclarer en Double" Date_référence, mais ça n'avait pas corrigé l'erreur.
Je vois que vous avez également enlevé la partie 'WorksheetFunction'. Est-ce que le problème pouvait alors venir de ça ?
Merci encore en tout cas !
vba-new a écrit :Bonjour Marusanmarukyû ( ○三○九 ) :D
Ce n'est pas j que tu dois déclarer en 'Double' mais la variable Date_Référence.
Ensuite, je ne comprends pas ton code...
Tu parcours chaque ligne de ta colonne B et tu copies les données des colonnes C à P.
Mais en début de macro, tu effaces le contenu de ces colonnes !! Il n'y a donc plus de données :?: :?: :shock:
Ou bien quelque chose m'échappe ??
Merci également pour votre aide vba-new. Je suis bien incapable de vous répondre, c'est la macro qu'une sympathique personne comme vous avait rédigé lors de mon précédent sujet, et je n'en comprends que quelques minuscules parties. Ce que je voyais, c'est que ça marchait pour ce que je voulais faire. :D
Merci à tous les deux :)
Marusanmarukyû ( ○三○九 )
Re,
@Banzai
Tu as déclaré la variable j en variant... Une erreur de ta part ?
Edit : J'ai rien dit