Communauté Fb
Follow us on twitter
Les vidéos du site
Le site complément

Programmer en vb

Bonjour et bienvenue,

vous venez de vous inscrire et vous souhaitez avoir accès aux différents forum.
il vous suffit alors de poster une présentation sur le forum "Présentation" ou divers sujets
Suite à 3 messages postés votre accès aux autres forums se fera automatiquement.

A vos claviers :

Merci d'avoir pris le temps de lire.
Merci pour votre inscription.

L'équipe de Programmer-en-VB

Forum de programmation VBA et VB.NET

Qui est en ligne ?

Il y a en tout 9 utilisateurs en ligne :: 0 Enregistré, 0 Invisible et 9 Invités

Aucun


Le record du nombre d'utilisateurs en ligne est de 65 le Mar 8 Juil - 23:40

Statistiques

Nos membres ont posté un total de 6207 messages dans 701 sujets

Nous avons 574 membres enregistrés

L'utilisateur enregistré le plus récent est leodupont

Recherche dans les forums

Utiliser cette méthode afin de trouver rapidement les discussions disponible sur notre forum.


Derniers sujets

» Instants musique
par Berly Aujourd'hui à 22:14

» Bonjour à RobertSiba
par AdminPVB Lun 3 Sep - 20:57

» bonjour à GARLED
par IFFIC Jeu 30 Aoû - 18:58

» Nouveau membre du forum
par IFFIC Mar 28 Aoû - 17:54

» bonjour a tous et toutes
par grisan29 Ven 24 Aoû - 18:09

» bienvenue a FunBen
par grisan29 Mar 21 Aoû - 21:20

» Partage d'un jour
par Berly Ven 10 Aoû - 11:46

» Partage d'un soir ....
par Berly Lun 6 Aoû - 8:27

» Faute de code .....Que décodez vous dans ce film ?
par Berly Dim 24 Juin - 11:35

» Des idées .......vous en avez ?
par Berly Mar 12 Juin - 17:19

» Bienvenue à lina.bouda13
par AdminPVB Dim 10 Juin - 22:28

» Manquant:windows common controls 6 (SP6)
par TitiPointCom Sam 9 Juin - 8:47

» Bienvenue à Alis
par AdminPVB Lun 4 Juin - 20:34

» Les Boucles
par Berly Dim 3 Juin - 14:57

» bienvenue a Dengpao
par AdminPVB Jeu 31 Mai - 21:40

Utiliser le bouton résolu

Dans votre message d'origine
cliquer sur le bouton



Ensuite tout en bas sur
Modifier le titre du sujet
cliquer sur le bouton

Résolu !!!

Ensuite changer l’icône du sujet par le bouton

Voilà pas plus compliqué que cela.


Merci pour votre présence ou passage sur le site de programmer-en-vb

Partenaires


créer un forum



Annuaire referencement


Flux RSS


MSN 

Septembre 2018

LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930

Calendrier Calendrier


ôter les lignes créer par l'enregistreur de macros pour supprimer des bordures

Partagez
avatar
grisan29
Modérateur
Modérateur

Localisation : BRETAGNE Nord 29
Messages : 837
Date d'inscription : 25/07/2013

ôter les lignes créer par l'enregistreur de macros pour supprimer des bordures

Message par grisan29 le Mer 1 Nov - 19:36

bonjour à tous et toutes
tout le monde est confronter un jour où l'autre par les lignes de code que l'enregistreur écrit en trop et qui ralentisse l'exécution du code
l'exemple que je vous donne est très simple
il s'agit d'effacer automatiquement des bordures verticales sur une feuille ici c'est dans la colonne Q la bordure gauche des lignes 19 à 49
voici le code que l'enregistreur a créer et qui fonctionne bien malgré qu'il n'est pas très "joli" a voir

Code:
Sub Macro1()
'
' Macro1 Macro
'

'
    Range("Q19:Q49").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    Selection.Borders(xlEdgeLeft).LineStyle = xlNone
    Selection.Borders(xlEdgeTop).LineStyle = xlNone
    Selection.Borders(xlEdgeBottom).LineStyle = xlNone
    Selection.Borders(xlEdgeRight).LineStyle = xlNone
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
End Sub

la solution est d'enlever tous les .select et Sélection sauf que comme cela le code ne fonctionne plus et pourquoi ?
car avec .select la feuille est sélectionnée et sans il ne trouve plus la feuille du coup on est tenté de rajouter
Code:
sheets("feuil1").Range("Q19:Q49")
mais c'est pas mieux et très fastidieux d'enlever toutes les selection. (suivant le code), la solution est de simplifier le code puisque l'enregistreur donne la solution
en écrivant = xLNone en fin de chaque ligne et il fait le tour des cellules concernées pour effacer les bordures haute,basse, droite et gauche qui se trouve dans la plage concernée en ralentissant le reste de l'exécution, donc vous reprenez
Code:
Range("Q19:Q49").Select
vous enlever le select en laissant le point, puis comme ce sont les bordures que l'ont veux effacer il faut rajouter Borders qui est dans le code
ce qui donne

Code:
Range("Q19:Q49").Borders


puis pour le haut,bas, droit et gauche on a la fonction .LineStyle qui est dans le code

Code:
Range("Q19:Q49").Borders.LineStyle


puis pour les effacer on a xlNone en bout de lignes de code
ce qui donne une ligne de code

Code:
Range("Q19:Q49").Borders.LineStyle = xlNone

et voila pour une petite réduction de code issu de l'enregistreur
a tester


_________________
Pascal
http://vbaddict.altervista.org/Fichier_upload/grisan29/13.php

Comment mettre votre sujet en résolu.
 
Dans votre message d'origine

cliquer sur le bouton



Ensuite tout en bas sur 
Modifier le titre du sujet 
cliquer sur le bouton 

Résolu !!!

avatar
IFFIC
Step_Three_VBA
Step_Three_VBA

Localisation : Sud Breizh ar mor
Messages : 413
Date d'inscription : 25/05/2013

Re: ôter les lignes créer par l'enregistreur de macros pour supprimer des bordures

Message par IFFIC le Ven 3 Nov - 18:04

Bonsoir Pascal Very Happy , et à tous, ou Bonjour s'il est plus tôt demain,
Il y a effectivement à faire un sérieux nettoyage de lignes inutiles lorsque l'on enregistre une macro!
Souvent une seule ligne est suffisante, alors que Bill nous en fourgue une caisse. Embarassed

Si j'interviens, ce n'est que pour mettre le doigt sur une bonne habitude à avoir.
- 1) Cibler le Classeur en cours et la feuille active, car cela pourra servir à éviter confusion.
- 2) Toujours parler en mode "R & C" car en disant: ".Range ("Q19:Q49")" on l'a seulement dans le "Q". (Sans jeu de mot)

Alors que dire; ".Range(Cells(19, 17), Cells(49, 17)) va permettre en amont de déterminer la ligne et la colonne choisies

Exemple:
HAUT= 19; BAS =  49
COL = 17 (Correspondant à la dix-septième lettre de l'alphabet qu'est le "Q") …Moi j'aurais mis 69, mais bon!
Ce qui donne un code plus amplement gérable :

".Range(Cells(HAUT, COL), Cells(BAS, COL))"

Je sais; Pascal que tu es au fait de cette utilisation. Mon but n'est que de le rappeler à ceux qui passeront par là.

Ci-joint pour cela, un petit fichier montrant la méthode (N B: Je suis passé en autre zone de cellules pour visualisation plus aisée)

A noter qu'en mettant les images dans un module de classe, on aurait réduit l'écriture sérieusement.
http://www.cjoint.com/c/GKdq5BHYlo4


Amicalement comme il est évident,
Yves
avatar
grisan29
Modérateur
Modérateur

Localisation : BRETAGNE Nord 29
Messages : 837
Date d'inscription : 25/07/2013

Re: ôter les lignes créer par l'enregistreur de macros pour supprimer des bordures

Message par grisan29 le Ven 3 Nov - 18:45

bonsoir Yffic
merci pour ton intervention , j'ai mis la colonne"Q" comme cela sans a priori
mais ce n'est exemple de réduction que j'ai proposer, car il y a pire et plus complexe avec l'enregistreur
ton fichier ne s'ouvre pas en direct a cause de son extension


_________________
Pascal
http://vbaddict.altervista.org/Fichier_upload/grisan29/13.php

Comment mettre votre sujet en résolu.
 
Dans votre message d'origine

cliquer sur le bouton



Ensuite tout en bas sur 
Modifier le titre du sujet 
cliquer sur le bouton 

Résolu !!!

avatar
IFFIC
Step_Three_VBA
Step_Three_VBA

Localisation : Sud Breizh ar mor
Messages : 413
Date d'inscription : 25/05/2013

Re: ôter les lignes créer par l'enregistreur de macros pour supprimer des bordures

Message par IFFIC le Ven 3 Nov - 21:06

Je ne pige pas, car c'est un fichier ". xlsm", qui doit fonctionner.
Il faut aussi souvent faire glisser le fichier du "Téléchargements" vers un autre de son choix.
avatar
grisan29
Modérateur
Modérateur

Localisation : BRETAGNE Nord 29
Messages : 837
Date d'inscription : 25/07/2013

Re: ôter les lignes créer par l'enregistreur de macros pour supprimer des bordures

Message par grisan29 le Ven 3 Nov - 21:11

bonsoir Yffic
voici ce qu'il y a comme panneau d'avertissement quand ouvre ton exemple directement mais si on l'enregistre avant c'est bon
http://www.cjoint.com/c/GKdujRS6r76


_________________
Pascal
http://vbaddict.altervista.org/Fichier_upload/grisan29/13.php

Comment mettre votre sujet en résolu.
 
Dans votre message d'origine

cliquer sur le bouton



Ensuite tout en bas sur 
Modifier le titre du sujet 
cliquer sur le bouton 

Résolu !!!


Contenu sponsorisé

Re: ôter les lignes créer par l'enregistreur de macros pour supprimer des bordures

Message par Contenu sponsorisé


    La date/heure actuelle est Mar 25 Sep - 22:33