Probleme avec Selection.delete

  • Initiateur de la discussion Initiateur de la discussion Bg's
  • 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 !

B

Bg's

Guest
Bonjour le forum,

J'ai créé une base de donnée en access et un module qui permet de fusionner des informations d'une requête vers un formulaire Excel.

Maintenant je reste coincé sur un petit problème.

J'aimerais juste sélectionner un plage :

Range("F3:F18").Select

et quand il a sélectionné je fais cela :

Selection.Delete Shift:=xlToLeft

Il me donne alors ce message d'erreur :

Erreur Compilation : Argument nommé introuvable.

Qu'en pensez-vous ?

Merci d'avance pour votre aide

Bg's
 
Salut,

Je viens de tester chez moi (Excel XP, FR, WinXP) et ça marche impecc.
Pour info, tu n'est pas obligé de sélectionner pour ensuite effacer la sélection.
Tu peux agir directement sur l'objet de ton choix :

Range("F3:F18").Delete Shift:=xlToLeft
ou
[F3:F18].Delete Shift:=xlToLeft

Si tu utilises la méthode Delete, cela supprime les cellules, et tu dois gérer le déplacement des cellules adjacentes.
Il y a aussi la méthode Clear qui efface, sans supprimer
[F3:F18].Clear

Tiens-nous au courant.

Rai
 
Bonjour Bg's, Rai, le Forum

A mon avis, tu devrais faire aussi référence à la feuille et même éventuellement au classeur... Tout en évitant par la même occasion le "Select" qui alourdi la procédure comme le précise Rai

Workbooks("TheBook.xls").Sheets("TheSheet").Range("F3:F18").Delete Shift:=xlToLeft

Bonne Journée
@+Thierry
 
Salut Rai, @+Thierry, le forum,

Merci pour vos réponse ULTRA rapide !

J'ai essayé ce que Rai m'a conseillé et ça fonctionne !!!!

Un grand merci à vous deux !

Un truc complètement dingue c'est que je met une condition

If rst![annee2002(p4)] <> 2002-2003 or rst![annee2002(p4)] <> 2003-2004 then
procedure

Quand il tombe sur un champ rst![annee2002(p4)] qui est égal à 2002-2003 il fait quand même la procédure.

Vous comprenez ce que je veux dire ?

Merci encore pour votre aide.

Bg's
 
Re-,

Ben, je pense comprendre ce que tu veux dire.

Si tu écris réellement un test avec 2002-2003 dans la condition,
je serais d'avis que notre ami Excel cherche -1 comme condition ...

VBA fait l'opération 2002-2003.

A toi de voir ce que tu veux tester, peut-être un chti coup de "" autour de ce terme de la condition ??


Salutations,

Rai
 
Re bonjour Bg's, Rai

Je ne saisis pas, VBE accepte cette syntax telle quelle ? Moi je pense qu'il faut passer par une String pour ton critère...

As tu essayé avec des "" car sinon j'ai l'impression (sans tester) que 2002 - 2003 = -1 au lieu de chercher rééllement la String "2002-2003"...

Mais possible que je ne soies pas sur la bonne longueur d'onde, je suis à la bourre pour l'instant...

Bonne Journée
@+Thierry
 
Bonjour Bg's, Rai, @+Thierry,

Bg's, remplace le Or par un And et ça devrait aller mieux. En fait quand tu tombes sur un champ 2002-2003, il est différent de 2003-2004 donc ta condition est vraie.

Bonne journée.

A+

José
 
Re-salut Rai,

En effet ici j'ai oublié les "" mais dans mon prog je les avais mises.

C'est pas grave car j'ai fais autrement, j'ai fais :

if [champ] = "2001-2002" then
Procedure
end if

Par contre j'utilsie Clear qui est beaucoup mieux que Delete.

Merci pour tes explications simples, c''est avec des gens comme toi qu'on apprend des choses intéressantes en programmation.

Bg's
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

G
Réponses
4
Affichages
929
guy974
G
Retour