Modifier des cellules d'une autre feuille

Laosurlamontagne

XLDnaute Occasionnel
Bonjour,

Je bloque sur un truc vraiment bête. J'ai une macro qui marche très bien (faire les bordures d'un tableau de taille variable):

Code:
Sub Macro3()


With Worksheets("Liste").Range(Range("B3").End(xlDown), "I3")
.BorderAround Weight:=xlThin
.Borders(xlInsideVertical).Weight = xlThin
.Borders(xlInsideHorizontal).Weight = xlThin

End With
End Sub

Seulement, cette macro ne fonctionne que si je "suis" dans l'onglet "liste". Elle m'indique l'erreur 1004 si je la lance d'une autre feuille.

Comment faire pour qu'elle fonctionne quelle que soit la feuille "où" je me trouve ?

Merci pour votre retour,
 

CHALET53

XLDnaute Barbatruc
Re : Modifier des cellules d'une autre feuille

bonjour,

Je constate la même chose

En attendant mieux :

Sub Macro3()
a = ActiveSheet.Name
Application.ScreenUpdating = False
Sheets("Liste").Select
With Worksheets("Liste").Range(Range("B3").End(xlDown), "I3")
.BorderAround Weight:=xlThin
.Borders(xlInsideVertical).Weight = xlThin
.Borders(xlInsideHorizontal).Weight = xlThin

End With
Sheets(a).Activate
End Sub
 

job75

XLDnaute Barbatruc
Re : Modifier des cellules d'une autre feuille

Bonjour,

Il faut préciser la feuille pour les 2 "Range" :

Code:
Sub Macro3()
With Sheets("Liste").Range(Sheets("Liste").Range("B3").End(xlDown), "I3")
 .BorderAround Weight:=xlThin
 .Borders(xlInsideVertical).Weight = xlThin
 .Borders(xlInsideHorizontal).Weight = xlThin
End With
End Sub
A+
 

job75

XLDnaute Barbatruc
Re : Modifier des cellules d'une autre feuille

Re,

Noter qu'il est bien plus simple d'utiliser une Mise en forme conditionnelle (MFC) :

- dans la feuille Liste sélectionner les colonnes B:I

- formule de la MFC =ET(LIGNE()>2;NB.VIDE(DECALER($B$3;;;LIGNE()-2))=0)

- format de la MFC => Bordure

A+
 

job75

XLDnaute Barbatruc
Re : Modifier des cellules d'une autre feuille

Re,

Pour revenir à la macro, ceci est plus logique :

Code:
Sub Macro3()
With Sheets("Liste")
  .Range("B3:I" & .Rows.Count).Borders.LineStyle = xlNone 'RAZ
  .Range(.Range("B3").End(xlDown), "I3").Borders.Weight = xlThin
End With
End Sub
A+
 

Laosurlamontagne

XLDnaute Occasionnel
Re : Modifier des cellules d'une autre feuille

Bonjour !

Les réponses se sont enchainées ! Génial !

Les solutions marchent parfaitement, merci ! J'ai retenu celle où il faut préciser le range, elle semble être plus rapide à fonctionner.

Pour la MFC: je ne préfère pas car si quelqu'un ajoute une ligne "à la main", ça multiplie d'autant les entrée MFC...
 

job75

XLDnaute Barbatruc
Re : Modifier des cellules d'une autre feuille

Re,

Pour terminer, une autre solution qui évite de "voir" l'effacement des bordures :

Code:
Sub Macro3()
Dim derlig As Long
With Sheets("Liste")
  derlig = .Range("B3").End(xlDown).Row
  .Range("B3:I" & derlig).Borders.Weight = xlThin
  If derlig < .Rows.Count Then _
    .Range("B" & derlig + 1 & ":I" & .Rows.Count).Borders.LineStyle = xlNone
End With
End Sub
A+
 

Discussions similaires

Statistiques des forums

Discussions
312 393
Messages
2 087 968
Membres
103 688
dernier inscrit
Amadou