Visual Basic For Applications
Macro de vérification de fichier Excel !

Une solution pour vérifier vos données et détecter d’éventuelles anomalies.

Principe de la macro

La macro que nous vous proposons ci-dessous vous permet de vérifier le nombre de données contenues dans chacune des colonnes d’une feuille de votre fichier.

Le code vous fournie un récapilatif synthétique de ce que votre feuille contient. Vous pourrez ainsi voir si des données sont manquantes dans une de vos colonnes.

Cette macro évite de devoir faire la vérification manuellement et permet de cadrer son fichier.

Information

Le cadrage peut être défini comme le recensement des informations contenues dans une fichier. C’est une sorte d’état des lieux.

Fonctionnement

La macro peut être utilisée dans n’importe lequel de vos fichiers Excel. Pour la faire fonctionner il suffit de suivre les quelques étapes ci-dessous :

  1. Copier/coller le code dans votre éditeur VBA.
  2. Vous placer sur la feuille à analyser.
  3. Lancer la macro.
  4. Aller à l’onglet « CADRAGE » pour avoir les résultats.

En effet, la macro va créer un onglet « CADRAGE » dans votre fichier que vous pourrez par la suite supprimer. Cet onglet va contenir tous les entêtes de colonnes de votre fichier et vous indiquer le nombre de cellule non-vide par colonne.

Le code calcul ensuite 2 autres informations :

  • La différence du nombre de valeur de la colonne par rapport à la colonne qui à le maximum de valeur.
  • La différence du nombre de valeur de la colonne par rapport au MODE.

Ces 2 indicateurs doivent vous permettre d’identifier des défauts dans vos colonnes même si elles ne devraient pas toutes avoir le même nombre de valeurs.

Attention

Pensez à supprimer l’onglet CADRAGE si vous lancez la macro une 2ème fois afin qu’elle puisse fonctionner.

Le code VBA

'Auteur : www.Indexmatch.fr
'Date : 03/2018
Option Explicit
 
Sub CADRAGE_FICHIER()
 
Application.ScreenUpdating = False
Application.DisplayAlerts = False
 
Dim LastColumnNumber As Integer
Dim LastRowNumber As Integer
Dim RowCounter As Integer
Dim ColumnCounter As Integer
Dim FramingCounter As Integer
Dim ColumnName As String
Dim FramingSheetCounter As Integer
Dim TargetSheetName As String
 
Dim Max As Integer
Dim Mode As Integer
 
    TargetSheetName = ActiveSheet.Name
    Sheets.Add.Name = "CADRAGE"
    Range("A1").Value = "INTITULE_COLONNE"
    Range("B1").Value = "CADRAGE"
    Range("C1").Value = "ECART_AVEC_MAX"
    Range("D1").Value = "ECART_AVEC_MODE"
 
    Sheets(TargetSheetName).Select
 
    LastColumnNumber = Cells.SpecialCells(xlCellTypeLastCell).Column
    LastRowNumber = Cells.SpecialCells(xlCellTypeLastCell).Row
 
    ColumnCounter = 1
    FramingSheetCounter = 2
 
        Do 'boucle à travers les colonnes
 
        RowCounter = 2
        FramingCounter = 0
 
            Do 'boucle à travers les lignes
 
                If Columns(ColumnCounter).Find("*") Is Nothing Then Exit Do
 
                ColumnName = Cells(1, ColumnCounter)
 
                If Cells(RowCounter, ColumnCounter).Value <> "" Then FramingCounter = FramingCounter + 1
 
                RowCounter = RowCounter + 1
 
            Loop Until RowCounter = LastRowNumber + 1
 
            Sheets("CADRAGE").Select 'Complète l'onglet de cadrage
 
            Cells(FramingSheetCounter, 1).Value = ColumnName
            ColumnName = ""
            Cells(FramingSheetCounter, 2).Value = FramingCounter
            FramingSheetCounter = FramingSheetCounter + 1
 
            Sheets(TargetSheetName).Select
            ColumnCounter = ColumnCounter + 1
 
        Loop Until ColumnCounter = LastColumnNumber + 1
 
        Sheets("CADRAGE").Select
 
        Max = Application.WorksheetFunction.Max(Range("B:B"))
        Mode = Application.WorksheetFunction.Mode(Range("B:B"))
        FramingCounter = 2
 
        Do While FramingCounter <= Cells.SpecialCells(xlCellTypeLastCell).Row
 
            Cells(FramingCounter, 3).Value = Max - Cells(FramingCounter, 2).Value
            Cells(FramingCounter, 4).Value = Mode - Cells(FramingCounter, 2).Value
 
            FramingCounter = FramingCounter + 1
 
        Loop
 
    Application.DisplayAlerts = True
 
End Sub
Notez nous !
[Moyenne : 4.8]
2018-03-18T20:25:38+00:00