aide script VBA

alf049

XLDnaute Junior
Bonjour,
n'étant pas très callé en VBA et encore moins lorsqu'il s'agit de mettre en relation 2 onglets, je me tourne vers vous pour obtenir de l'aide.

L'idée consiste à écrire que si la case est vide alors il ne se passe rien, s'il y a du texte, je vais chercher dans l'onglet A sur la même ligne la couleur affecté à la cellule Ax.
Exemple: si vide = blanc, si donnée en B3 alors je vais cherché la couleur de la cellule A3 dans l'onglet A

Je pensais l'écrire comme cela mais je coince:

Sub MEFC()
'
' Mise en forme conditionnelle
'
Dim RngCell As Range

Sheets("ongletB").Select

For Each RngCell In Range("A1:Z19").Cells
If RngCell.Value = "" Then RngCell.Interior.Color = RGB(0,0,0)
if rngcell.value=

End Sub

merci à celui qui voudra bien m'aider.
 

lapix

XLDnaute Occasionnel
Re : aide script VBA

Bonjour,

Ton code fonctionne

tu as besoin dans ta feuille de reference de donner tes valeurs RGB sous la forme de trois colonnes et donner le numero de ligne en reference.

Par exemple :

Dim RngCell As Range
Dim Ligne As Long
Sheets("ongletB").Select
For Each RngCell In Range("A1:Z19").Cells
If RngCell.Value = "" Then Ligne = 1

RngCell.Interior.Color = RGB(Sheets("A").Cells(Ligne, 1).Value, _
Sheets("A").Cells(Ligne, 2).Value, Sheets("A").Cells(Ligne, 3).Value)
Next RngCell

a te lire
 

alf049

XLDnaute Junior
Re : aide script VBA

bonsoir,
staple, tu as saisie ce que je souhaite faire. cela est-il possible sans le bouton ? :confused:

JeanPierre, je vais te l'avouer il ne s'agit pas de manque de patience mais ni plus ni moins que de frustrations par rapport à un savoir que je n'ai pas mais que j'éssai d'acquérir. :p
Car en ce qui me concerne je préfère apprendre à pécher le poisson que je mange plutôt que de l'acheter chez le poissonnier.;)

Penses-tu pouvoir m'aider ?
 

Staple1600

XLDnaute Barbatruc
Re : aide script VBA

Re


Oui, il suffit d'utiliser le code VBA de la macro test
(Outils/Macros/Microsoft Visual Basic Editor)

et par exemple, de lui associer un raccourci-clavier.

Comme tu disais plus tôt
n'étant pas très callé en VBA
Tu connais VBA jusqu'à quel point ?


EDITION: par commodité je mets le code dans le message
(en y ajoutant des commentaires)
Code:
Sub test()
[COLOR=SeaGreen]'Déclarations des variables[/COLOR]
Dim i As Long
[COLOR=SeaGreen]'Parcours de la plage de cellules à traiter
'(ici de 1ère cellule à la dernière cellule non vide
'de la colonne B de la feuille 2)
[/COLOR] For i = Feuil2.[B65536].End(xlUp).Row To 1 Step -1
[COLOR=SeaGreen]'Si la cellule en colonne B n'est pas vide[/COLOR]
If Not IsEmpty(Feuil2.Cells(i, 2)) Then
[COLOR=SeaGreen]'alors cette cellule prend la couleur de fond[/COLOR]
[COLOR=SeaGreen]de la cellule de la feuille A (de même ligne).[/COLOR]
Feuil2.Cells(i, 2).Interior.ColorIndex = _
Sheets("A").Cells(i, 1).Interior.ColorIndex
End If
Next i
End Sub
 
Dernière édition:

alf049

XLDnaute Junior
Re : aide script VBA

bonjour,

avant que tu ne me le conseil j'avais procéder ainsi sauf que je me suis retrouvé avec une erreur 424 Object manquant.

Donc j'ai modifié l'écriture comme cela:
Sub mfc()
Dim i As Long
Dim planning As Worksheet
With planning
For i = Range("a2:k20").End(xlUp).Row To 1 Step -1
If Not IsEmpty(Cells(i, 2)) Then
Cells(i, 2).Interior.ColorIndex = Sheets("données").Cells(i, 1).Interior.ColorIndex
End If
Next i
End With
End Sub

ce qui m'a permis de corriger le bug, mais j'ai pas l'effet escompté.

Au fait:
la mise en couleur est réalisé avec script de MFC dans l'onglet "Données", cela vient-il de là ?

Private Sub worksheet_change(ByVal target As Range)
Dim cellule As Range
Set cellule = Application.Intersect(Range("A:A"), target)
If cellule Is Nothing Then Exit Sub
Select Case target.Value
Case "rh"
target.Offset(0, 1).Interior.ColorIndex = 35
End Select
End Sub
 

Discussions similaires

Réponses
5
Affichages
350
Compte Supprimé 979
C
Réponses
1
Affichages
1 K

Statistiques des forums

Discussions
312 213
Messages
2 086 307
Membres
103 174
dernier inscrit
OBUTT