Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

début en VBA .... recherche fonction toute simple

  • Initiateur de la discussion Initiateur de la discussion 2b7a
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

2b7a

XLDnaute Occasionnel
bonjour à toutes et tous
et très bonne année !

Je me lance dans VBA ; pour l'instant ... c'est du chinois absolu !


En fait, je veux juste faire quelques petites macros pour "colorier" des cellules.
J'ai donc fait la mini-macro ci-dessous en mettant la bordure et la couleur désirée
Mais quand je l'applique, bien sûr, elle ne colorie que ma cellule C2
..... là est mon problème !!
je voudrais que cette macro "colorie" des cellules aléatoires ; ex : A10:A12 ; ou A10:C20, ou H15 ; ou B8 ;etc ...

Quelle fonction dois-je utiliser ?

.... ne vous moquez pas ... c'est ma toutes première macro !!!

D'avance, merci !


Sub tteszones()
'' tteszones Macro
' Macro enregistrée le 04/01/2012
'

'
Range("C2").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Interior
.ColorIndex = 24
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
End Sub
 
Re : début en VBA .... recherche fonction toute simple

Bonjour,

tu peux enlever la ligne Range("C2").Select
Et ta macro fonctionnera sur la sélection en cours.

A+
 
Re : début en VBA .... recherche fonction toute simple

Bonjour, 2b7a.

Bonne année à vous aussi.
Je me lance dans VBA ; pour l'instant ... c'est du chinois absolu !
Pas d'inquiétude : au début, c'est toujours comme ça... C'est ensuite que ça se complique !😛😛

Faites le test en quotant la première ligne ainsi :
' Range("C2").Select
en sélectionnant une zone aléatoire et en lançant la macro.

Edit : Bing ! Bonjour, Hasco, et pardon pour la bousculade !
 
Dernière édition:
Re : début en VBA .... recherche fonction toute simple

Re 2b7a,

Hello Victor😀

2b7a post #3 à dit:
.. tu vois, mes débuts sont "basiques".

Il vaut mieux que les débuts, soient basiques, comme furent les miens et ceux de temps d'autres. C'est la meilleur façon d'apprendre, en se familiarisant avec le langage et ses comportement. C'est mieux que de se lancer dans des programmes qu'on ne maîtrisera jamais et qui découragent. Avant de faire HEC, il faut passer par le cp.

Qui va piano, va sano.

A+ et bon courage

[Edit]Pas de blème, il y a des carambolages de qualité...
 
Dernière modification par un modérateur:
Re : début en VBA .... recherche fonction toute simple

Bonjour 2b7a, Ges, Patrick

' Macro enregistrée le 04/01/2012

Quand je lis ça, cela prouve que certains ont compris qu'on pouvait enregistrer des macros avec l'enregistreur (vive Henry, le seul qui travaille 24/24) 😱.

C'est un bon début pour commencer le VBA 🙂.
 
Re : début en VBA .... recherche fonction toute simple

Re

En premier, prépares ton tube d'antalgique et une crème relaxante pour ton doigt (celui qui va devoir frénétiquement caresser la touche F1 aprés avoir lu ce qui suit 😉 )

je voudrais que cette macro "colorie" des cellules aléatoires ; ex : A10:A12 ; ou A10:C20, ou H15 ; ou B8

La macro ci-dessous colorie, borde et tout cela selon un hasard relativement hasardeux mais pas trop.

VB:
Sub formataleat(MaPlaGe As String)
'' tteszones Macro
' Macro enregistrée le 04/01/2012
Dim x&, y&, i&, j&
x = Range(MaPlaGe).Rows.Count
y = Range(MaPlaGe).Columns.Count
For i = 1 To x
For j = 1 To y
    Range(MaPlaGe).ClearFormats
    With Range(MaPlaGe).Resize(Int((Rnd * i) + 1), Int((Rnd * j) + 1))
        .Borders.LineStyle = 1
        .Interior.ColorIndex = Int((Rnd * 56) + 1)
' remplacer Int((Rnd * 56) + 1) par 24 si tu veux garder la même couleur
    End With
Next j
Next i
End Sub
Code:
Sub colorie()
formataleat "A1:C30"
End Sub

Pour tester lancer la macro colorie plusieurs fois.

PS: C'est volontiers que je répondrai aux questions qui tu ne manqueras pas de me poser 😉
 
Dernière édition:
Re : début en VBA .... recherche fonction toute simple

euh ... c'est pas un tube d'antalgique ... c'est un camion !!
je vais regarder tout cela calmement !!

merci ... et à très bientôt !!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
14
Affichages
484
M
Réponses
8
Affichages
2 K
Michelrib
M
T
  • Question Question
XL pour MAC Recherche date
Réponses
5
Affichages
2 K
tdenis
T
Réponses
8
Affichages
1 K
H
Réponses
2
Affichages
1 K
H
S
Réponses
4
Affichages
2 K
stage_ferrit
S
C
  • Question Question
Réponses
13
Affichages
3 K
F
Réponses
8
Affichages
3 K
F
C
Réponses
2
Affichages
1 K
candice**
C
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…