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

XL 2019 ecriture sur cellules actives

  • Initiateur de la discussion Initiateur de la discussion Did25
  • 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 !

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
Bonjour Did,
Votre dernier activecell pointe la cellule active.
Donc remplacez cette ligne par simplement .value="texte"l
Sans oublier le point, la cellule sera alors celle définie par le with.
Et supprimez le sélect du with.
 
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
 
Bonjour,
Remplacer :
With ActiveCell.Offset(0, 1).Select
ActiveCell.Value = "Texte"
End With
Par :
ActiveCell.Offset(0, 1).value = "Texte"
Inutile de déclarer selectedcell si vous vous en servez pas par contre.
A +
 
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
 
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:
Après on peut mouliner comme ça pendant des heures, le mieux serait de glisser un fichier.
Si tu veux colorier toute la sélection, peut être essayer de remplacer activecell par selection.
A +
 
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

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

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
 
- 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
2
Affichages
668
Réponses
22
Affichages
3 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…