if ActiveCell = "NOM DE CHAMP" then

fid

XLDnaute Nouveau
bonjour à tous,

certainement très simple mais j'ai du mal à écrire en vba cela : if ActiveCell = "NOM DE CHAMP" then

j'ai un champ nommé "REGLAGES" qui comportent un certain nombre de données

dans ma macro, je veux supprimer toutes les lignes dont la cellule B correspond à l'une des données de "REGLAGES"

Code:
Range("B1").Select
Dim Rg2 As Range
With Worksheets("Feuil1")
   Set Rg2 = .Range("B1:B" & .Range("B65536").End(xlUp).Row)
End With

Do Until ActiveCell = ""
If ActiveCell = REGLAGES Then
Selection.EntireRow.Delete Shift:=xlDown
Else
ActiveCell.Offset(1, 0).Range("A1").Select
End If
Loop

cela ne fait rien du tout, comment bien syntaxer cela ?
si je mets par exemple : If ActiveCell = "val1" Then
cela fonctionne, c'est donc la façon de rentrer le nom de champ qui est mauvaise

d'avance merci pour vos lumières
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : if ActiveCell = "NOM DE CHAMP" then

Bonjour Fid, bonjour le forum,

Essaie comme ça :

Code:
Sub Macro1()
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim li As Integer 'déclare la variable li (LIgne)
Dim cel As Range 'déclare la variable cel (CELlule)

dl = Sheets("Feuil1").Range("B65536").End(xlUp).Row 'définit la dernière ligne dl
For li = dl To 1 Step -1 'boucle 1 : inversée de la dernière ligne li à la ligne 1
    For Each cel In Range("REGLAGES") 'boucle 2 : sur toutes les cellule cel de la plage nommée "REGLAGES"
        If Sheets("Feuil1").Cells(li, 2).Value = cel.Value Then Rows(li).Delete 'si la valeur de la cellule ligne li, colonne B est égale à la valeur de la cellule cel, efface la ligne li
    Next cel 'prochaine cellule de la boucle 2
Next li 'prochaine ligne de la boucle 1
End Sub
 

fid

XLDnaute Nouveau
Re : if ActiveCell = "NOM DE CHAMP" then

Merci Robert, cela fonctionne parfaitement
en fait, si j'ai bien compris on ne peut utiliser ActiveCell = "nom de champ" ?
bref l'essentiel est que le programme s'exécute correctement
encore merci !
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : if ActiveCell = "NOM DE CHAMP" then

Bonjour Fid, bonjour le forum,

Si ta plage nommé Nom_de_Champ ne contient qu'une seule cellule tu peux faire
:
Code:
If ActiveCell.Value = Range("Nom_de_Champ").Value Then
Sinon il te faudra boucler sur toutes des cellules de la plage nommée :
Code:
Dim cel As Range

For Each cel In Range("Nom_de_Champ")
     If ActiveCell.Value = cel.Value Then
          '...
     End If
Next cel
 

Discussions similaires

Statistiques des forums

Discussions
314 450
Messages
2 109 721
Membres
110 551
dernier inscrit
Khyolyanna