Syntaxe d'une formule

Bonjour tous,

Je nécessite votre aide pour résoudre la syntaxe d'une formule VBA.

Je cherche à écrire RANGE("A6:J19").Select mais les n° de ligne étant remplacés par des compteurs.

J'ai déjà rèussi Range("A6:Jmon compteur").Select de la façon suivante :

Range(("A6:J") & (cpteuranneeOK + 5)).Select

quand je connais la ligne de début mais pas celle de fin.

Par contre, je n'ai malheureusement pas encore mis le doigt sur la syntaxe correcte quand les deux n° de ligne de la sélection sont remplacés par des compteurs.

Ci-après une des syntaxes -mauvaise- que j'ai écrite :

Range("A & (cpteuranneeOK + 6) : J" & (cpteurdateremplie + 5)).Select

Pour DAN :

Une fois cette syntaxe résolue, j'aurais la suite de mon fil précédent.

Dois-je à ce moment là continuer sur l'ancien fil ou en créer un nouveau?

Et si je mets la suite sur mon ancien fil, auras-tu la possibilité de le savoir, car je compte sur toi, si tu le peux évidemment, pour jeter un oeil dessus.

Merci à tous

Amicalement

Joseph

Bonsoir,

Essaie ceci :

Range("A" & (cpteuranneeOK + 6) & ":J" & (cpteurdateremplie + 5)).Select

Pour ton ancien fil, si ta demande n'est pas résolue, reste sur celui-là c'est plus facile de comprendre et d'assurer le suivi.

Amicalement

Dan

Bonsoir

Peux-tu essayer :

Range("A & cpteuranneeOK + 6 & ":J" & cpteurdateremplie + 5).Select

D'après mes différentes lectures des codes, le Select est à éviter.

Amicalement

Nad

Edit : lol Dan

Bonsoir DAN, bonsoir NAD,

J'ai essayé vos deux codes.

Celui de DAN fonctionne, et pour le tien NAD, j'ai "erreur de syntaxe". Pourquoi le Select est-il à éviter, et comment faire pour l'éviter?

Merci à vous deux ! Je vais pouvoir continuer.

Pour DAN, excuse moi mais je n'ai pas bien compris : dès que j'ai fini je réécris sur l'ancien fil, c'est bien çà?

C'était mon histoire de copier/coller tous en gardant les formules en A et ma liste en B. Avec tous les fils que tu dois regarder, je ne sais pas si tu t'en souviens encore.

J'ai surtout peur que tu ne le saches pas quand je continuerais sur l'ancien fil alors que je compte sur toi pour y jeter un oeil avisé. D'un autre côté je me rends bien compte qu'un florilège de nouveaux fils est à éviter.

Bonne soirée à tous les deux, il est l'heure pour moi d'arrêter pour aujourd'hui.

Amicalement

Joseph.

Bonsoir à tous,

Pour le code de Nad, il manque un tout petit guillemet après le premier A. Ce qui donne :

Range("A" & cpteuranneeOK + 6 & ":J" & cpteurdateremplie + 5).Select

Ensuite

Joseph67 a écrit :

Pourquoi le Select est-il à éviter, et comment faire pour l'éviter?

Lors de l'exécution d'un code, si le nombre d'appel à la méthode Select est élevé, cela

ralentit le code car une cellule (ou groupe de cellule) est sélectionnée un grand nombre de

fois. C'est pourquoi, lorsque l'on est obligé d'utiliser cette méthode, on met en général un

"Application.ScreenUpdating = False" qui permet de désactiver la mise à jour de l'écran et ainsi d'accélérer le code.

Toutefois, ceci ne fait que pallier l'inconvénient (dans certains cas) de l'utilisation de la méthode Select.

La réponse à la question : "comment l'éviter ?" dépend de l'utilisation que l'on veut faire de la sélection.

Exemple, si l'on veut copier la cellule A1 vers A2 :

Au lieu d'écrire :

Range("A1").Select
Selection.Copy
Range("A2").Select
ActiveSheet.Paste

Le code suivant va plus vite :

Range("A1").Copy [A2]

En espérant t'avoir un peu éclairé de ce côté-là...

3roulage-v2.xlsm (29.05 Ko)

Re,

Pour DAN, excuse moi mais je n'ai pas bien compris : dès que j'ai fini je réécris sur l'ancien fil, c'est bien çà?

Simplement, si l'on a répondu à la question posée dans ton premier postdans le fil en question, tu peux mettre le fil comme RESOLU.

Vois ce lien si tu ne l'as pas lu, cela t'aidera pour tes demandes et réponses --> https://forum.excel-pratique.com/viewtopic.php?t=13

Pour vbanew, tu peux faire une des deux lignes ci-après, tout en étant que la première sera plus compréhensible pour tous.

Range("A1").Copy Range("A2")

ou

[A1].Copy [A2]

Amicalement

Dan

Bonjour Dan, bonjour vba-new.

Merci pour vos réponses éclairées.

Pour le code de Nad sur lequel il manquait un guillemet, j'aurais dû m'en apercevoir moi-même. Le fait que VBA mette "erreur de syntaxe" aurait dû m'aiguiller. Mais j'avoue également qu'après avoir passé pas mal de temps à essayer d'écrire correctement cette formule, j'étais un peu (beaucoup) saturé.

Concernant l'instruction Select, j'utilise déjà l'instruction "Application.ScreenUpdating" dans ma base Excel. La rapidité en est un avantage, mais surtout le fait de ne plus avoir l'écran qui "sautille" durant tout le temps de la procédure.

Quand j'aurais finalisé mon code, je vais essayer le méthode sans Select.

Pour Dan : je vais donc mettre résolu sur le fil précédent, et en créer un autre dès que j'aurais terminé mon code.

D'un côté cela m'arrange, car je suis presque sûr de pouvoir bénéficier de votre regard en postant un nouveau sujet.

Merci beaucoup pour votre aide!

Amicalement

Joseph.

Rechercher des sujets similaires à "syntaxe formule"