Effectuer la même action sur plusieurs feuilles

Bonjour,

J'espère que vous allez bien.

Mon objectif est de répéter la même action sur plusieurs feuilles. Je souhaiterais à chaque fois que je rencontre le terme null, le remplacer par un espace "".

J'arrive à faire cette action lorsque je ne l'applique seulement qu'à une seule feuille, mais lorsque j'essaie de le faire pour plusieurs, ca ne fonctionne pas...

Voilà le code qui pose problème (Module 1)

Public Sub CSV()

Dim tabloF()
Dim x As Byte

    Dim iLigTitre As Integer
    Dim iLigFin As Integer
    Dim iColDeb As Integer
    Dim iColFin As Integer
    Dim iLig As Integer
    Dim iCol As Integer

tabloF = Array("LVMH", "Kering", "Ricard", "LOreal") 'le problème se situe par là
For x = 0 To UBound(tabloF)
With Sheets(tabloF(x))

                iLigTitre = 1
                iLigFin = Range("A" & Rows.Count).End(xlUp).Row
                iColDeb = 1
                iColFin = Range("G" & iLigTitre).End(xlToLeft).Column

                    For iLig = iLigTitre To iLigFin
                    For iCol = iColDeb To iColFin
                        If Cells(iLig, iCol) = "null" Then
                        Cells(iLig, iCol) = ""
                        End If
                        Next iCol
                    Next iLig

                    End With
Next x

End Sub

Je vous joins aussi le fichier!

Merci pr votre aide si précieuse :)

6dashboard.xlsm (277.61 Ko)

Bonjour,

Si tu utilises un With > il faut placer le point devant les objets qui s'y rapportent ...

Sinon, les objets (.cells > .range > ect. ) ne se référeront qu'à la feuille active ...

Un essai ...

Public Sub CSV()
Dim tabloF()
Dim x As Byte
Dim iLigTitre As Integer
Dim iLigFin As Integer
Dim iColDeb As Integer
Dim iColFin As Integer
Dim iLig As Integer
Dim iCol As Integer

    tabloF = Array("LVMH", "Kering", "Ricard", "LOreal")
    For x = 0 To UBound(tabloF)
        With Sheets(tabloF(x))

            iLigTitre = 1
            iLigFin = .Range("A" & .Rows.Count).End(xlUp).Row
            iColDeb = 1
            iColFin = .Cells(iLigTitre, .Columns.Count).End(xlToLeft).Column

            For iLig = iLigTitre To iLigFin
                For iCol = iColDeb To iColFin
                    If .Cells(iLig, iCol) = "null" Then
                        .Cells(iLig, iCol) = ""
                    End If
                Next iCol
            Next iLig
        End With
    Next x
End Sub

ric

Merci bcp !!

Problème résolu :)

ric

Bonjour,

Votre code était uniquement pour remplacer "null" par "" ? Pourquoi autant de ligne pour interroger lig , col .... ?

Est-ce bien utile ? si la cellule contiend null alors on remplace sinon on passe ?

Sub Macro1()
Dim MESFEUILLES As Worksheet
For Each MESFEUILLES In Worksheets
    MESFEUILLES.Select
    Cells.Replace What:="null", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
Next MESFEUILLES
End Sub
Rechercher des sujets similaires à "effectuer meme action feuilles"