XL 2010 date avec condition

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.

Dans la feuille 2 en colonne, T et U:
Si présence d'une date en T et U = suppression des dates existante en T et U pour le numéro concerné.

Si présence du texte "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.

Dates = format dd/mm/yyyy mois en cours -1 figer le jour au 01.
 

Pièces jointes

  • DATE.xlsm
    23.2 KB · Affichages: 48
Dernière édition:

christine854

XLDnaute Junior
Bon, un premier test laborieux, je ne sais pas trop si je suis sur la bonne voie
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
 

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16