christine854
XLDnaute Junior
Bonjour à tous
J'ai un classeur dans lequel je souhaiterai inscrire automatiquement des dates en fonction de la présence du texte "test" dans une colonne pour chaque numéro correspondant et faire un copier-coller d’une de ces dates dans une autre feuille pour le numéro correspondant
Dans le feuille 2 en fonction des conditions la colonne T et (ou) U réceptionneront les dates.*
Dans la feuille 1 en fonction des conditions la colonne AW réceptionne le copier-coller*
Dates = format dd/mm/yyyy mois en cours -1 figer le jour au 01.
*pour chaque numéro correspondant
Si date en T et U = suppression des dates existante en T et U pour le numéro concerné.
Si "test" en colonne C et si pas de date en colonne T pour le numéro correspondant = date (format dd/mm/yyyy) en colonne T pour le numéro correspondant et copier-coller de cette date en feuille 1 colonne AW pour le numéro correspondant.
Si présence du texte "test" en colonne C et si présence de date en colonne T pour le numéro correspondant = copier-coller de cette date en feuille 1 colonne AW pour le numéro correspondant.
Si pas de présence du texte "test" en colonne C et si pas de présence de date en colonne T pour le numéro correspondant = aucune action.
Si pas de présence du texte "test" en colonne C et si présence de date en colonne T pour le numéro correspondant = date (format dd/mm/yyyy) en colonne U pour le numéro correspondant.
J’ai tenté quelque chose en vba mais sans résultat
J'ai un classeur dans lequel je souhaiterai inscrire automatiquement des dates en fonction de la présence du texte "test" dans une colonne pour chaque numéro correspondant et faire un copier-coller d’une de ces dates dans une autre feuille pour le numéro correspondant
Dans le feuille 2 en fonction des conditions la colonne T et (ou) U réceptionneront les dates.*
Dans la feuille 1 en fonction des conditions la colonne AW réceptionne le copier-coller*
Dates = format dd/mm/yyyy mois en cours -1 figer le jour au 01.
*pour chaque numéro correspondant
Si date en T et U = suppression des dates existante en T et U pour le numéro concerné.
Si "test" en colonne C et si pas de date en colonne T pour le numéro correspondant = date (format dd/mm/yyyy) en colonne T pour le numéro correspondant et copier-coller de cette date en feuille 1 colonne AW pour le numéro correspondant.
Si présence du texte "test" en colonne C et si présence de date en colonne T pour le numéro correspondant = copier-coller de cette date en feuille 1 colonne AW pour le numéro correspondant.
Si pas de présence du texte "test" en colonne C et si pas de présence de date en colonne T pour le numéro correspondant = aucune action.
Si pas de présence du texte "test" en colonne C et si présence de date en colonne T pour le numéro correspondant = date (format dd/mm/yyyy) en colonne U pour le numéro correspondant.
J’ai tenté quelque chose en vba mais sans résultat
Code:
Sub test()
tabloValid = Feuil2.Range("A2:C" & Feuil1.Cells(Rows.Count, 1).End(xlUp).Row)
Dim miniTablo()
Application.ScreenUpdating = False
For i = 1 To UBound(tabloValid)
With Feuil2
If .Cells(ligneID, 20) = Date _
And .Cells(ligneID, 21) = Date Then
.Cells(ligneID, 20) = ""
.Cells(ligneID, 21) = ""
Else
ligneID = Application.Match(tabloValid(i, 1), .[A:A], 0)
If tabloValid(i, 3) = "test" _
And .Cells(ligneID, 20) = "" Then
.Cells(ligneID, 20) = DateSerial(Year(Date), Month(Date) - 1, 1)
End If
If tabloValid(i, 3) = "test" _
And .Cells(ligneID, 20) = Date Then
If tabloValid(i, 3) = "" _
And .Cells(ligneID, 20) = "" Then
If tabloValid(i, 3) = "" _
And .Cells(ligneID, 20) = Date Then
.Cells(ligneID, 21) = DateSerial(Year(Date), Month(Date) - 1, 1)
End If
ReDim miniTablo(1 To 8)
For x = 1 To 8
miniTablo(x) = tabloValid(i, x)
Next x
If tabloValid(i, 3) = "test" Then
Feuil1.Cells(Rows.Count, 49).End(xlUp).Offset(1, 0).Resize(1, 8) = miniTablo
End If
End If
End With
Next i
Application.ScreenUpdating = True
End Sub