begin process at 2010 02 10 06:10:19
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Divers

 > 

Débutants

 > 

Problème avec une instruction VBA


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème avec une instruction VBA

mardi 22 mai 2007 à 11:04:05 | Problème avec une instruction VBA

Jpeg69

Bonjour,
Selon l'aide d'Excel, pour utiliser une plage de cellule avec l'instruction Cells, il faut utiliser l'instruction Range.

Exemple :

Range( Cells(1,1), Cells(2,2) )

Cependant, ma macro n'accepte pas : Range( Cells(1,1), Cells(2,2) ).Select ou Range( Cells(1,1), Cells(2,2) ).ClearContents

Je me demande alors où est le problème.

Merci d'avance.
mardi 22 mai 2007 à 11:15:04 | Re : Problème avec une instruction VBA

jmfmarques

Membre Club
Bonjour,

Réflexe élémentaire :
sers-toi de ton enregistreur de macro ==>> fais une sélection quelconque ===>> ferme ===> édikte la macro ===>> tu sauras ainsi comment écrit la chose Monsieur VBA !
mardi 22 mai 2007 à 11:23:14 | Re : Problème avec une instruction VBA

Molenn

Et répondre en même temps à la question : ton code est situé dans la même feuille que les cellules ou le range que tu tentes d'appeler ? Sinon, pour bien faire les choses, précise la feuille avec, quelque chose du style :

Worksheets("Feuille1").Range( Worksheets("Feuille1").Cells(1,1), Worksheets("Feuille1").Cells(2,2) ).ClearContents

Et sinon, comme d'hab. Message d'erreur ? A quel endroit de ton code ? etc etc ...


jmfmarques : Je ne suis pas sûr que l'éditeur de Macro fonctionne dans ce cas, parce que, comme on sélectionne la plage directement, il va donner la plage sous une forme simple genre Range("A1:B10"); la syntaxe avec des Cells imbriqués n'est utilisée qu'en pur VBA il me semble.

Molenn
mardi 22 mai 2007 à 11:23:44 | Re : Problème avec une instruction VBA

Jpeg69

Le problème c'est que j'utilise des variable pour connaître le numéro de ligne et de colonne.
L'instruction Range ne prend pas des variable, mais l'instruction Cells oui.

Range( Cells(x,y) ).Clear fonctionne à merveille.
mardi 22 mai 2007 à 11:28:59 | Re : Problème avec une instruction VBA

jmfmarques

Membre Club
"jmfmarques : Je ne suis pas sûr que l'éditeur de Macro fonctionne dans ce cas, parce que, comme on sélectionne la plage directement, il va donner la plage sous une forme simple genre Range("A1:B10"); la syntaxe avec des Cells imbriqués n'est utilisée qu'en pur VBA il me semble."

Et à moi il me semble que tu devais être absent, le jour d'une certaine distibution !!!
1) la macro de Monsieur VBA est écrite en VBA !
2) tu ne vois vraiment pas comment substituer le contenu de variables à "A1:B10" ???
mardi 22 mai 2007 à 11:36:15 | Re : Problème avec une instruction VBA

Jpeg69

Bonne idée (bien que lourde) Molenn ! Mais ça ne marche toujours pas.

Erreur d'exécution '9' : L'indice n'appartient pas à la sélection.

Mes variables dépendent d'un indice calculé avant en fonction de l'action choisie.
mardi 22 mai 2007 à 11:43:25 | Re : Problème avec une instruction VBA

jrivet

Membre Club
Salut,
Quand allez vous comprendre que pour obtenir une aide précise, il faut que l'on ai le plus de billes possible....

C'est déjà bien d'avoir donné l'erreur mais tu pourrais donner le code qui te donne cette erreur et les valeur des variables à l'instant de cette erreur

@+: Ju£i€n
Pensez: Réponse acceptée
mardi 22 mai 2007 à 12:01:38 | Re : Problème avec une instruction VBA

Jpeg69

Exemple :

Index = 2

Worksheets("Feuil1").Range( Cells( Index * 6, 7 ), Cells( Index * 6, 10 ) ).ClearContents

Lorsque la macro plante, c'est cette ligne qui est surligné en jaune.

Voila, j'espère avoir été assez clair cette fois.
mardi 22 mai 2007 à 12:12:32 | Re : Problème avec une instruction VBA

jrivet

Membre Club
Réponse acceptée !
Salut,
Tu es sûr que c'est la car je viens de testé sur Excel 2000 et ca semble fonctionner. (si toutefois ton fichier possède une feuille nommée Feuil1

Tyu peux essayer ceci.

Index = 2
Worksheets("Feuil1").Range("G" & CStr(Index * 6), "J" & CStr(Index * 6)).ClearContents
By Renfield



@+: Ju£i€n
Pensez: Réponse acceptée
mardi 22 mai 2007 à 15:15:26 | Re : Problème avec une instruction VBA

Molenn

jmfmarques : Je me suis mal exprimé. Quand je disais "pur VBA", je voulais dire qu'en allant directement dans l'Editeur taper avec ses petits doigts boudinés les quelques lignes de code aptes à faire notre bonheur. Bien sûr que l'éditeur de macro va fonctionner pour obtenir ce qu'il veut, par contre, jamais au grand jamais il n'écrira la définition d'une cellule avec cette syntaxe (ou alors effectivement, j'étais absent le jour de la distribution)
Pour la simple et bonne raison qu'avec l'éditeur de macro, on ne peut pas écrire de boucle pour défiler toute les cellules d'une plage.
Je vois très bien comment substituer les coordonnées d'une plage par les références de cellules, mais, et c'est ça qui est bien avec le VBA, tu peux remplacer des bouts de code par leur équivalent et relancer la macro aussitôt, et quand même parfois te retrouver avec des erreurs d'exécution '9' bien connue. Après, tout dépend du code et là, il nous manque plein de choses pour comprendre.

Jpeg69 : Ton exemple
Index = 2
Worksheets("Feuil1").Range( Cells( Index * 6, 7 ), Cells( Index * 6, 10 ) ).ClearContents

Il manque des choses. De mémoire, il me semble avoir déjà eu ce problème, si ta variable Index est de type String, ça plante, il faut un Integer pour que cela fonctionne, donc soit modifier le type de ta variable, soit l'encadrer d'un Cint( ).
Autrement, ce code fonctionne très bien sous EXCEL 2003 à condition bien entendu que le code soit attaché à "Feuil1". Si ce code se trouve par exemple dans "Feuil2" et que tu veuilles supprimer des cellules dans "Feuil1", c'est insuffisant, il faudrait :
Worksheets("Feuil1").Range( Worksheets("Feuil1").Cells( Index * 6, 7 ), Worksheets("Feuil1").Cells( Index * 6, 10 ) ).ClearContents

Molenn

1 2

Cette discussion est classée dans : vba, problème, cells, range, instruction


Répondre à ce message

Sujets en rapport avec ce message

problème avec range. [ par neophenix83 ] Bonjour, Je veux selectionner plusieurs cellules d'un coup (avec range donc)...cauf que le nombre de cellule est variable. en fait, ma colone peut ch Problème d'incrémentation d'un tableau dynamique [ par Tobi26 ] Bonjour à tous,J'ai l'application qui me permet de comparer toutes les cellules de la colonne A1 dans 2 fichiers différents :Option Base 1Sub CommandB Problème de compréhension code VBA Excel [ par Within Temptation ] Bonjour j'ai quelque difficultés à comprendre ce que doivent faire les morceaux de code suivants : Code n°1 :Sub MajConsoParcelles()    Sheets("Consom [VBA Excel] recuperer la lettre d'une colonne [ par tof008 ] Hello! Voila mon problème : Je dois ajouter automatiquement sur une ligne un nouveau mois, puis remplir la colonne de données...Je fais donc une boucl Problème Excel et VB avec Range(Cells... [ par alexcarton ] Bonjour,Je rencontre le problème suivant. Lorsque j'exécute la ligne ci-dessous, tout va bien. Mais lorsque je tente d'exécuter la même instruction en [VBA] - Problème de boucle [ par jeyjey1 ] Bonjour, J'ai créer le code ci dessous qui me permet suivant que les 4 premiers caracteres d'une cellule soient egaux aux 4 autres de la cellule du Supprimer le formatage automatique des cellules en date [ par bebe57 ] Bonjour, Je souhaite que excel ne transforme pas automatiquement ce que j'écris en date (par exemple "1-2" => "02-janv"). J'ai essayé de former le f


Nos sponsors


Sondage...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,343 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales