Attribuer à une variable une cellule
Bonjour,
j'ai une question extrêmement simplissime mais sur laquelle je bute, je souhaite attribuer à une variable une cellule pas uniquement sa valeur mais également son environnement dans mon besoin la couleur de la cellule. Au troisième commentaire du code qui suit vous pouvez voir où est mon problème.... Merci d'avance à la personne qui me répondra
BONNE JOURNEE !
Dim line As Long
Dim cel As Range
Dim cell As Range
Dim Derniere As Integer
Dim Derniereee As Integer
Public Sub CommandButton3_Click()
Dim colonneA As Range
'fonctions qui calculent les dernières lignes remmplies deus feuilles 1 puis 2
Derniere = DerniereLigne()
Derniereee = DerniereLigneee()
'la colonne A est sélectioné de la ligne 2 jusqu'à la dernière ligne déterminée dans la fonction précédente
Set colonneA = Acolon()
Dim lacellule As String
Dim colonneC As Range
Set colonneC = Ccolon()
Dim colonneD As Range
Set colonneD = Dcolon
Dim celles As Range
'sur la ligne suivante j'ai l'erreur je suis sur que c'est tout bête ...
cel = cells(line, 3)
celles = cells(line, 4)
line = 2
For Each cell In colonneA
If cell.Interior.Color = RGB(250, 128, 114) Then
lacellule = cell.Value
Feuil2.Activate
End If
For Each cel In colonneC
If cel.Value = lacellule Then
cell.Interior.Color = RGB(250, 128, 114)
End If
Next
For Each celles In colonneD
If cell.Value = lacellule Then
cell.Interior.Color = RGB(250, 128, 114)
End If
Next
Feuil1.Activate
Next
End Sub
Function Acolon()
Set Acolon = Feuil1.Range(Feuil1.cells(2, 1), Feuil1.cells(Derniereee, 1))
End Function
Function Ccolon()
Set Ccolon = Feuil2.Range(Feuil2.cells(2, 3), Feuil2.cells(Derniere, 3))
End Function
Function Dcolon()
Set Dcolon = Feuil2.Range(Feuil2.cells(2, 4), Feuil2.cells(Derniere, 4))
End Function
Function DerniereLigne()
Feuil2.Activate
DerniereLigne = 2 'première colonne à vérifier
Do While Not IsEmpty(cells(DerniereLigne, 1))
DerniereLigne = DerniereLigne + 1
Loop
DerniereLigne = DerniereLigne - 1
End Function
Function DerniereLigneee()
Feuil1.Activate
DerniereLigneee = 2 'première colonne à vérifier
Do While Not IsEmpty(cells(DerniereLigneee, 1))
DerniereLigneee = DerniereLigneee + 1
Loop
DerniereLigneee = DerniereLigneee - 1
End FunctionBonjour Man, bonjour le forum,
Deux erreurs dans ton code
1. ta variable line n'est initialisé qu'après le moment où tu définis Cel et Celles. Donc elle vaut 0 et ça plante ! Il te faut inverser les lignes :
line = 2
cel = cells(line, 3)
celles = cells(line, 4)2. Tu as déclaré les variables Cel et Celles comme des objets Range. Il te faut donc Set pour la définir
Set Cel = Cells(line, 3)
Set Celles = Cells(line, 4)le code correct :line = 2
Set cel = cells(line, 3)
Set celles = cells(line, 4)Merci beaucoup je me doutais bien que j'y étais presque j'aurais mis du temps à trouver !