XL 2019 VBA sélection cellule en fonction de leur contenu....

Pierre_38

XLDnaute Nouveau
Bonjour à tous,

Ceci est mon 1er post donc n'hésitez pas à me recadrer si je ne fais pas bien les choses !!!!

Mon souci est créer une macro VBA commander par "bouton"

Sélectionner des cellules en fonction de son contenu au sein d'une plage. Effacer le texte.
Réécrire ce "contenu" dans d'autres cellule de la même plage....

Fichier joint avec toutes les explications en détail

Vous remerciant par avance

Pierre
 

Pièces jointes

  • Exemple pour forum.xlsx
    17.6 KB · Affichages: 7
Solution
Bonjour Pierre, Deadpool_CC,

* regarde "Feuil1" : y'a aucun changement. (c'est normal !)
* ce que j'ai fait concerne uniquement la ligne 10.

* fais Ctrl e ➯ tous les "ATT" sont effacés ; le fond bleu disparaît ;
les autres valeurs de la ligne 10 restent inchangées.

* saisis en ligne 10 toutes les nouvelles valeurs "ATT" ; par exemple
en : G10 ; H10 ; AD10 ; AI10 ; AJ10 ; BF10 ➯ le tableau haut "Avant"
est maint'nant identique au tableau bas "Après" ! 😊 note bien
que les fonds bleus sont mis automatiquement. ;)

* remarque : pour les fonds bleus enlevés ou mis automatiquement,
c'est fait grâce à une très grande magie ! 🧙‍♀️ cette magie s'appelle MFC :
Mise en Forme Conditionnelle ; c'est sur l'onglet Accueil, groupe...

Deadpool_CC

XLDnaute Accro
En complément d'info nécessaire : une action de modif pour chaque ligne (chaque salarié) ou bien plusieurs lignes en même temps ? en gros c'est un traitement par salarié ou du global?

(Je pars du principe que 1 seul salarié à la fois) :
Si une solution à 2 boutons (Suppr. ATT / Ajout ATT) te convient ... c'est assez facile de faire fonction qui vide toute les cellules sélectionnées et une Autre Macro Qui remplit les cellules sélectionnées
Dit nous si on peut travailler sur cette hypothèse ?
 

Pierre_38

XLDnaute Nouveau
Merci pour la réponse

Chaque salarié aura sa propre feuille. 1 ligne par mois.
Donc traitement par salarié

Et le Principe 2 bouton me convient en effet
Attention toute les autres données de la ligne ne doivent pas être effacer!!!!

Merci;)
 

Deadpool_CC

XLDnaute Accro
Dans le fichier Ci-joint (Format .xlsm car contient des macros
Sélection des Cellules (CTRL + Clic celulles) et clique bouton voulu

j'ai ajouté une mise en forme conditionnelle si cellule contient ATT => Blanc sur fond Bleu

le code VBA est super simple :

VB:
Private Sub MettreATT_Click()
    Selection.FormulaR1C1 = "ATT"
End Sub

Private Sub SupprATT_Click()
    Selection.ClearContents
End Sub
 

Pièces jointes

  • Exemple pour forum.xlsm
    30.1 KB · Affichages: 5

soan

XLDnaute Barbatruc
Inactif
Bonjour Pierre, Deadpool_CC,

* regarde "Feuil1" : y'a aucun changement. (c'est normal !)
* ce que j'ai fait concerne uniquement la ligne 10.

* fais Ctrl e ➯ tous les "ATT" sont effacés ; le fond bleu disparaît ;
les autres valeurs de la ligne 10 restent inchangées.

* saisis en ligne 10 toutes les nouvelles valeurs "ATT" ; par exemple
en : G10 ; H10 ; AD10 ; AI10 ; AJ10 ; BF10 ➯ le tableau haut "Avant"
est maint'nant identique au tableau bas "Après" ! 😊 note bien
que les fonds bleus sont mis automatiquement. ;)

* remarque : pour les fonds bleus enlevés ou mis automatiquement,
c'est fait grâce à une très grande magie ! 🧙‍♀️ cette magie s'appelle MFC :
Mise en Forme Conditionnelle ; c'est sur l'onglet Accueil, groupe Styles,
commande "Mise en forme conditionnelle" (voir l'aide Excel pour plus d'infos).



code VBA :

VB:
Option Explicit

Sub ClearATT()
  Dim dcol%, col%: Application.ScreenUpdating = 0
  dcol = Cells(10, Columns.Count).End(1).Column: If dcol < 3 Then Exit Sub
  For col = 3 To dcol
    With Cells(10, col)
      If .Value = "ATT" Then .ClearContents
    End With
  Next col
End Sub

soan
 

Pièces jointes

  • Exemple pour forum.xlsm
    23.7 KB · Affichages: 6
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
315 093
Messages
2 116 139
Membres
112 669
dernier inscrit
Guigui2502