Vba : Gestionnaire de nom et mise en forme conditionnelle

anna83

XLDnaute Nouveau
Bonjour,

voici mon problème :
je dois comparer les cellules D6 d'une feuille Feuil1 et d'une feuille Archive1. le nom de la feuille Feuil1 reste le même mais celui de la 2è feuille (Archive1) peut évoluer (archive2,...). Si la cellule D6 de la Feuil1 est différente de la cellule D6 de la feuille Archive 1, alors je dois utiliser une mise en forme conditionnelle (exemple: la cellule est mise en valeur avec un fond orange). même combat pour D7, D8,... jusqu'à EQ300 !!!

mon problème est double :
- la mise en forme conditionnelle entre 2 feuilles ne fonctionnent que si j'utilisent un gestionnaire de nom
- je dois pouvoir automatiser le nommage des cellules sur une plage donnée.
Je ne suis ni développeuse ni informaticienne et mon code qui ne fonctionne pas vraiment :

Sub Macro7()
'
' Macro7 Macro
'
Dim i As Integer
Dim j As Integer
Dim NomChamps As String
Dim Cellule As String
Dim macellule As String

NomChamps = "ARCHIVE" & Cells(5, 1).Value
Cellule = Cells(5 + i, j + 3)

For i = 1 To 2
For j = 1 To 2

macellule = "=CELL(""adresse"")"
ActiveWorkbook.Names.Add Name:=NomChamps & macellule, RefersToR1C1:=macellule
ActiveWorkbook.Names(NomChamps & macellule).Comment = ""

Next i
Next j

End Sub

ça bugge !!! qqn peut-il m'aider ?

Merci !!!!!!
 

Robert

XLDnaute Barbatruc
Re : Vba : Gestionnaire de nom et mise en forme conditionnelle

Bonjour Anna et bienvenue, bonjour le forum,

Malgré tes explications et le code de ta macro ce n'est pas très clair pour moi... Pourrais-tu mettre un petit fichier exemple avec que tu as avant et ce que tu voudrais après la macro...
 

Robert

XLDnaute Barbatruc
Re : Vba : Gestionnaire de nom et mise en forme conditionnelle

Bonjour Anna, bonjour le forum,

La macro ci-dessous nomme toutes les cellules non vide des plages D6:EQ300 de tous les onglets du classeur dont le nom commence par Archive. J'espère que ça t'aidera :
Code:
Sub Macro7()
Dim o As Object 'déclare la variable o (Onglet)
Dim no As String 'déclare la variable no (Nom de l'Onglet)
Dim i As Integer 'déclare la variable i (Incrément de ligne)
Dim j As Integer 'déclare la variable j (Incrément de colonne)

For Each o In Sheets 'boucle sur tous les onglets du classeur
    If Left(o.Name, 7) = "Archive" Then 'si les 7 premiers caractères du nom de l'onglet sont "Archive"
        no = o.Name 'définit la nom de l'onglet
        For i = 6 To 300 'boucle 1 : des lignes 6 à 300
            For j = 4 To 147 'boucle 2 : des colonne D à EQ
                'nomme la plage composée de la cellule (i,j) : no + Lettre de la colonne + Numéro de ligne (exemple "Archive1D6")
                If o.Cells(i, j).Value <> "" Then o.Cells(i, j).Name = no & Trim(Split(Columns(j).Address(0, 0), ":")(0)) & i
            Next j 'prochaine colonne de la boucle 2
        Next i 'prochaine ligne de la boucle 1
    End If 'fin de la condition
Next o 'prochain onglet du classeur
End Sub
 

anna83

XLDnaute Nouveau
Re : Vba : Gestionnaire de nom et mise en forme conditionnelle

Bonjour Robert.

Excuse-moi de ne pas t'avoir répondu avant, Internet avec quelques soucis...

le code marche très bien !!! Merci 1000 fois

A bientôt

Anna
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas