Bonjour le fil, bonjour le forum,
Peut-être comme ça :
Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim NL As Integer 'déclare la variable NL (Nombre de Lignes)
Dim NC As Integer 'déclare la variable NC (Nombre de Colonnes)
Dim LI As Integer 'déclare la variable LI (LIgne)
Dim COL As Integer 'déclare la variable COL (COLonne)
Dim VR As Variant 'déclare la variable VR (Valeur de Référence)
Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter a ton cas)
TV = O.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
NL = UBound(TV, 1) 'définit le nombre de ligne NL du tableau des valeurs TV
NC = UBound(TV, 2) 'définit le nombre de colonnes NC du tableau des valeurs TV
For COL = 1 To NC 'boucle sur toutes les colonnes COL du tableau des valeurs TV
If O.Cells(Application.Rows.Count, COL).End(xlUp).Row <> NL Then 'condition : si la dernière ligne éditée de la colonne COL est différente de NL
O.Activate 'active l'onglet O
O.Cells(Application.Rows.Count, COL).End(xlUp).Select 'sélectionne la dernière ligne en question
MsgBox "La colonne " & Split(O.Columns(COL).Address(0, 0), ":")(0) & " contient un nombre différent de lignes !." 'message
Exit Sub 'sort de la procédure
End If 'fin de la condition
Next COL 'prochaine colonne de la boucle
For COL = 1 To NC 'boucle 1 : sur toutes les colonnes COL du tableau des valeurs TV
VR = InputBox("Indiquer la valeur de référence pour la colonne " & Split(O.Columns(COL).Address(0, 0), ":")(0), "Valeur de référence", O.Cells(2, COL).Value)
If VR = False Or VR = "" Then GoTo suite 'si bouton "Annuler", va à l'étiquette "suite"
For LI = 2 To NL 'boucle 2 : sur toutes les lignes LI de la colonne de la boucle
If CStr(TV(LI, COL)) <> VR Then 'condition : si la valeur de la cellule de la boucle est différente de la valeur de référence VR
O.Activate 'active l'onglet O
O.Cells(LI, COL).Select 'sélectionne la cellule en question
'arrête la procédure si "Oui" au message ou continue la recherche si "Non" au message
If MsgBox("Valeur différente en colonne " & Split(O.Columns(COL).Address(0, 0), ":")(0) & " ! Modifier ?", vbYesNo, "ATTENTION") = vbYes Then Exit Sub
End If 'fin de la condition
Next LI 'prochaine ligne de la boucle 2
suite: 'étiquette
Next COL 'prochaine colonne de la boucle 1
End Sub