> 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 !


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