macro avec if

michel.dupont

XLDnaute Occasionnel
Bonjour
Sans doute une macro simple à écrire mais probablement compliquée pour un débutant
ps:je ne souhaite pas utiliser de MFC.
je joins un petit fichier où ma demande est explicitée
merci pour votre aide
bonne soirée
cordialement
Michel
 

Pièces jointes

  • testMD.xlsx
    9.8 KB · Affichages: 20

job75

XLDnaute Barbatruc
Bonsoir michel.dupont,

Voyez le fichier joint et ce code en effet pas très compliqué :
Code:
Option Compare Text 'la casse est ignorée

Sub Mettre_X()
Dim nom$, jour$, tablo, ncol%, i&, j%
nom = "G" 'à adapter
jour = "vendredi" 'à adapter
Application.ScreenUpdating = False
With Feuil1 'CodeName de la feuille
    If .FilterMode Then .ShowAllData 'si la feuille est filtrée
    With .UsedRange
        .Replace "X", "", xlWhole 'efface les "X"
        tablo = .Formula
        If Not IsArray(tablo) Then Exit Sub 'sécurité
        ncol = UBound(tablo, 2)
        For i = 2 To UBound(tablo)
            If tablo(i, 1) = nom Then
                If tablo(i, 2) = "Oui" Then
                    For j = 3 To ncol
                        If tablo(1, j) = jour Then tablo(i, j) = "X"
                    Next j
                End If
            End If
        Next i
        .Formula = tablo
    End With
End With
End Sub
 

Pièces jointes

  • testMD(1).xlsm
    24.2 KB · Affichages: 18
Haut Bas