Vba : Gestionnaire de nom et mise en forme conditionnelle

  • Initiateur de la discussion Initiateur de la discussion anna83
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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 !!!!!!
 
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...
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
25
Affichages
609
Réponses
3
Affichages
673
Retour