Probleme avec Selection.delete

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
 
R

Rai

Guest
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
 
@

@+Thierry

Guest
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
 
B

Bg's

Guest
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
 
R

Rai

Guest
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
 
@

@+Thierry

Guest
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
 
J

jmps

Guest
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é
 
B

Bg's

Guest
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
 

Statistiques des forums

Discussions
312 398
Messages
2 088 063
Membres
103 711
dernier inscrit
amin Saadaoui