Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Erreur bout de code ???

  • Initiateur de la discussion Initiateur de la discussion delboe
  • 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 !

delboe

XLDnaute Nouveau
Bonsoir à tous,

J'ai un bout de code qui, je pense, fait le travail suivant : sur toutes les colonnes E, à partir de E7 sur les feuilles citées (et seulement elles !), Excel devrait effacer le contenu... N'est-ce pas le cas ?

Voici le bout de code :

Dim Lg%, i%
For i = 1 To Worksheets.Count
With Worksheets(i)
Lg = .Range("e65536").End(xlUp).Row
If .Name <> "Programmation annuelle" And .Name <> "Programmation de cycle" And .Name <> "période 1" And .Name <> "période 2" And .Name <> "période 3" And .Name <> "période 4" And .Name <> "période 5" Then
.Range("e7:e" & Lg).ClearContents
End If
End With

Je précise que je ne comprends pas grand chose au VB ; je traduis instinctivement...

Voici mon problème : J'ai une feuille intitulée "Base de données" (située dans le classeur) dont le contenu s'efface également de E7 à E.... Et je voudrais que le contenu ne bouge pas sur cette feuille... ce qui devrait être le cas si je comprends les restrictions précisées dans ce code... et pourtant, non...

Pouvez-vous m'aider ou ne suis-je pas assez clair ?

D'avance merci !
Greg
 
Re : Erreur bout de code ???

Bonsoir delboe,

C'est en effet un "bout de code que tu nous forunis...

Cependant, on peut constater qu'il efface la colonne E à partir de E7 sur toutes les feuilles EXXCEPTE les feuilles citées.

Donc, si ne veux pas que la colonne E de la feuille "Base de données" ne soit pas effacée, il te faut la rajouter dans la condition IF.

A+
 
Re : Erreur bout de code ???

Bonsoir delboe,

Supposons que le nom de la feuille traitée dans la boucle soit "Base de données".
Dans ce cas, la condition If .Name <> "Programmation annuelle" And .Name <> "Programmation de cycle" And .Name <> "période 1" And .Name <> "période 2" And .Name <> "période 3" And .Name <> "période 4" And .Name <> "période 5"
est bien vérifiée (donc on procède à l'effacement) puisque:

.Name <> "Programmation annuelle" est vrai
.Name <> "Programmation de cycle" est vrai
.Name <> "période 1" est vrai
.Name <> "période 2" est vrai
.Name <> "période 3" est vrai
.Name <> "période 4" est vrai
.Name <> "période 5" est vrai

la condition telle qu'elle est écrite n'effacera pas les données des feuilles citées dans la condition. Soit par exemple la feuille "période 2", alors .Name <> "période 2" est faux et la condition globale est donc fausse aussi.

Pour éliminer les feuilles non désirées, on peut écrire:
if NOT ( .Name ="Base de données" or .Name ="Autre feuille sans effacement") then
effacement
endif

ce qui revient à conserver la forme de la condition mais avec les feuilles sans effacement:
if .Name <>"Base de données" and .Name <>"Autre feuille sans effacement") then
effacement
endif
 
Dernière édition:
Re : Erreur bout de code ???

Bonsoir le fil, bonsoir le forum,

Une proposition avec un Select Case (non testé) :
Code:
Dim Lg%, i%
For i = 1 To Worksheets.Count
With Worksheets(i)
    Select Case Worksheets(i).Name
        Case "Programmation annuelle", "Programmation de cycle", "période 1", "période 2", "période 3", "période 4", "période 5", "Base de données"
        Case Else
            Lg = .Range("e65536").End(xlUp).Row
            .Range("e7:e" & Lg).ClearContents
    End Select
End With
 
- 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

  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
418
Réponses
3
Affichages
800
  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
908
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…