> Tous les forums > Forum Bureautique
 Peut-on condenser ce code fait avec l'enregistreurSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
Gorfous
  Posté le 12/10/2019 @ 08:39 
Aller en bas de la page 
Petit astucien

Bonjour à tous et merci pour vous réponses

Peut-on condenser ce code fait avec l'enregistreur

Private Sub OuiMaj()
Dim nom As String
nom = Cells(2, 27)
If Range("AA2").Value = "Oui" Then
Range("A3:I4,K3:Q4").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = 3
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = 3
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = 3
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = 3
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Range("A1").Select
Else
Range("A3:I4,K3:Q4").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 1
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 1
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 1
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 1
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Range("A1").Select
End If
End Sub

Publicité
txuku
 Posté le 13/10/2019 à 08:57 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonjour

Je m interroge sur l interet de condenser ???

Moins de place prise ? Les tailles de disques sont enormes !

Accelerer son emploi : j ai fait l essai de remplacer des script jsx ( Photoshop ) construits avec l enregistreur par d autres equivalents mais plus elegants construits avec les methodes preconisees - c etait souvent moins rapide !!!

Gorfous
 Posté le 13/10/2019 à 17:19 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour txuku,

Je te remercie de me répondre, je vais me contenter de ce qu'a fait l'enregistreur de macro.

Bonne soirée.

Boogie Palace
 Posté le 14/10/2019 à 12:41 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

bonjour Gorfous

ton code après une cure de commejaime ^_^ :

Dim nom$: nom = Cells(2, 27)
COULEUR = IIf([AA2] = "Oui", vbRed, vbBlack): EPAISSEUR = IIf([AA2] = "Oui", xlThick, xlThin)
With Range("A3:I4,K3:Q4")
For Each BORDURE In Array(xlEdgeLeft, xlEdgeTop, xlEdgeBottom, xlEdgeRight)
With .Borders(BORDURE): .LineStyle = xlContinuous: .Weight = EPAISSEUR: .Color = COULEUR: End With
Next BORDURE
For Each BORDURE In Array(xlDiagonalDown, xlDiagonalUp, xlInsideVertical, xlInsideHorizontal)
.Borders(BORDURE).LineStyle = xlNone
Next BORDURE
End With: [A1].Select


et encore, tu peux virer des trucs :
• la déclaration de "nom", vu que par la suite tu ne t'en sers pas (tu utilises directement l'adresse AA2 pour le contrôle du "Oui")
• la 2e boucle sur BORDURE, car par défaut, si tu ne définis pas de format particulier sur une bordure, elle sera = xlNone
• le dernier select sur A1, sauf si réel besoin

attention à la casse : un "oui" sans majuscule au début ne déclenchera pas le rouge.
il faudra légèrement adapter le code si tu veux pouvoir saisir "OUI, oui, OuI, ouI..."

Gorfous
 Posté le 15/10/2019 à 09:18 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour Boogie Palace

Peut-tu commenter ton code qui fonctionne super bien

Merci l'ami

Boogie Palace
 Posté le 15/10/2019 à 11:37 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
Gorfous a écrit :

Bonjour Boogie Palace

Peut-tu commenter ton code qui fonctionne super bien

Merci l'ami

bonjour, je ne suis pas sûr de savoir faire ça, il y a des méthodes utilisées qui ne te sont pas familières, c'est ça ?
les IIf ? les boucles dans les Array() ?
dis-moi ce qui est du chinois pour toi et j’essaierai d'expliquer, mais Google sera peut-être un meilleur pédagogue que moi...

laure3
 Posté le 15/10/2019 à 12:40 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Bonjour,
Mais que font ces lignes de code (en Français..., explication simple! svp) ? Merci, L.

Gorfous
 Posté le 15/10/2019 à 13:36 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour

Pour moi tout est incompréhensible

laure3
 Posté le 15/10/2019 à 13:43 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne
Gorfous a écrit :

Bonjour

Pour moi tout est incompréhensible

d'accord mais tu avais quel but au départ, tu n'as pas la moindre idée de ce que ces commandes font???



Modifié par laure3 le 15/10/2019 18:48
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
12,90 €Windows 10 Pro 32/64 bits OEM à 12,90 €
Valable jusqu'au 03 Mars

Le vendeur sérieux DIGITAL FR propose sur Amazon  la clé d'activation pour Windows 10 professionnel en français 32 bits / 64 bits à 12,90 €. Cette clé livrée par email fonctionne avec l'outil d'installation et de création de support de Microsoft que vous pouvez télécharger ici ou directement avec l'ISO de Windows 10 Pro. De quoi installer légalement Windows 10 Pro sur un PC. Pour en savoir plus sur l'achat et l'installation d'une clé OEM de Windows 10, suivez les indications de notre dossier pratique.


> Voir l'offre
GratuitJeu PC Assassin's Creed Syndicate gratuit
Valable jusqu'au 27 Février

Epic Game Store offre actuellement le jeu PC Assassin's Creed Syndicate. Incarnez Jacob Frye, un jeune Assassin impétueux et rebelle, et utilisez vos capacités pour aider les laissés-pour-compte dans la marche vers le progrès. Parcourez la ville à l'apogée de la Révolution Industrielle et rencontrez des personnages historiques emblématiques. De Westminster à Whitechapel, croisez Darwin, Dickens, la reine Victoria, et bien d'autres. En tant que dirigeant d'un gang, fortifiez votre repère et ralliez les membres des gangs rivaux à votre cause afin de reprendre la capitale des mains des Templiers.


> Voir l'offre
169,99 €Lot de 2 écrans 24 pouces Samsung S24F354 (Full HD, PLS, 4 ms, FreeSync) à 169,99 €
Valable jusqu'au 26 Février

RueDuCommerce propose actuellement le lot de 2 écrans 24 pouces Samsung S24F354 à 169,99 € alors qu'on les trouve ailleurs à partir de 110 € l'unité. Ces écrans disposent d'une dalle PLS Full HD (1920x1080) et offrent un temps de réponse de 4 ms. Ils possèdent des entrées VGA et HDMI ainsi que des fonctions d'anti scintillement et anti lumière bleue.


> Voir l'offre

Sujets relatifs
Problème avec ce code : Objet requis
ERREUR CODE : F1 avec imprimante epson XP 235
Open0Office-j'ai ouvert avec mon code- je voudrais supprimer la protection-
Ce code est-il correct
peut on copier des photos à partir d'un diaporama photo réalisé avec NERO
Excel ne peut pas terminer cette tâche avec erreur de ressources disponible
Excel ne peut pas terminer cette tâche avec erreur de ressources disponible
***quelqu'un peut-il me traduire ce PDF ?***
Voila ce que j'ai avec Outlook 2007 ?
logiciel qui peut rivaliser avec IDM
Plus de sujets relatifs à Peut-on condenser ce code fait avec l''enregistreur
 > Tous les forums > Forum Bureautique