XL 2019 ecriture sur cellules actives

Did25

XLDnaute Occasionnel
Bonjour le forum ,je cherche une solution pour colorier des cellules sélectionnées et en même temps écrire sur les cellules de droite un texte .
Actuellement j'utilise cette formule ,le coloriage fonctionne mais l'écriture ne se fait que sur la première cellule .Merci de votre aide
Worksheets("Modèle").Activate
Set selectedCell = Application.ActiveCell
With Selection.Interior
.Color = 5287936
End With
Set selectedCell = Application.ActiveCell
With ActiveCell.Offset(0, 1).Select
ActiveCell.Value = "Texte"
End With
End Sub
 
Solution
Re

Pour annuler une action faite avec une macro il faut par programmation refaire le code inverse que la macro à faite.
VB:
Sub AnnuleMaVersion()
Dim i&

Selection.Interior.Color = xlNone

For i = 1 To Selection.Rows.Count
    Selection(i, 2).Value = ""
Next
End Sub

*Cela n'était pas dans la question du départ... 🤔

@Phil69970

Did25

XLDnaute Occasionnel
Bonsoir Sylvanu ,le dernier activecell.offset ,je dois l'enlever ? ,en fait sur mon fichier je selectionne les cellules de D7 à F14 et lorsque je lance ma macro celle-ci doit colorier toutes ces cellules puis inscrire un texte dans F7 à F14 . Je suis un peu perdu ,je l'avoue
 

Did25

XLDnaute Occasionnel
Bonsoir Wayki ,d'après vos informations ,voilà ce que ça donne :
Worksheets("Modèle").Activate
Set selectedCell = Application.ActiveCell
With Selection.Interior
.Color = 5287936
ActiveCell.Offset(0, 1).Value = "Texte"
End With
End Sub

Malheureusement ça ne fonctionne pas ,j'ai toujours que la première cellule qui inscrit "texte",pas celles de dessous
 

laurent950

XLDnaute Accro
Bonsoir @Did25 , @sylvanu , @Wayki

VB:
Sub test()
Dim FModèle As Worksheet
Set FModèle = Worksheets("Modèle")
Dim selectedCell As Range
    Set selectedCell = FModèle.Range(ActiveCell.Address)
With selectedCell
    .Interior.Color = 5287936 ' Cellule Active Couleur
    '.Value = "Texte" ' Cellule Active Texte
    ' Ligne juste en dessous
    '.offset(1,0).Interior.Color = 5287936  ' Juste sous la Cellule Active Couleur
    .offset(1,0).Value = "Texte"  ' Juste sous la Cellule Active Texte
End With
End Sub
 
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Tout le monde,
Une autre solution en automatique, il suffit de sélectionner une zone pour qu'elle se remplisse avec :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo Fin
    If Target.Column Mod 4 = 0 Then     ' uniquement si colonnes concernées
        Target.Interior.Color = 5287936 ' mise en couleur
        For Each c In Target            ' dans toute la zone
            If c.Column Mod 4 = 1 Then  ' si colonne de droite
                c.Value = "Texte"       ' insertion texte
            End If
        Next c
    End If
Fin:
End Sub

Mais là aussi le Ctrl Z ne marche pas, pas de Ctrl Z après l'éxécution d'une macro.
A approfondir, peut être une solution va venir.
 

Pièces jointes

  • Planning XLD.xlsm
    58.4 KB · Affichages: 1

sylvanu

XLDnaute Barbatruc
Supporter XLD
Une V2 :
Si la zone sélectionnée est blanche alors vert et insertion texte, si la zone est déjà verte alors on met en blanc et on efface les textes, avec :
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo Fin
    If Target.Interior.Color = 5287936 Then ' si couleur verte
        Couleur = 16777215                  ' alors blanc et texte vide
        Texte = ""
    Else                                    ' sinon vert et texte="Texte"
        Couleur = 5287936
        Texte = "Texte"
    End If
    If Target.Column Mod 4 = 0 Then         ' uniquement si colonnes concernées
        Target.Interior.Color = Couleur     ' mise en couleur
        For Each c In Target                ' dans toute la zone
            If c.Column Mod 4 = 1 Then      ' si colonne de droite
                c.Value = Texte             ' insertion texte
            End If
        Next c
    End If
Fin:
End Sub
 

Pièces jointes

  • Planning XLD(V2).xlsm
    58.9 KB · Affichages: 1

Phil69970

XLDnaute Barbatruc
Re

Pour annuler une action faite avec une macro il faut par programmation refaire le code inverse que la macro à faite.
VB:
Sub AnnuleMaVersion()
Dim i&

Selection.Interior.Color = xlNone

For i = 1 To Selection.Rows.Count
    Selection(i, 2).Value = ""
Next
End Sub

*Cela n'était pas dans la question du départ... 🤔

@Phil69970
 

Discussions similaires

Statistiques des forums

Discussions
311 715
Messages
2 081 822
Membres
101 822
dernier inscrit
holale