macro seulement si les cellules ne sont pas barrées

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

superbog

XLDnaute Occasionnel
Bonjour,

Voici ma difficulté, j'ai une macro qui fonctionne bien mais elle recopie automatiquement toutes les données du fichier de base or je voudrais m'en servir pour faire des mise à jour.

Donc il faudrait, qu'elle s'exécute, barre les cellules du fichiers de base après les avoir traité et qu'ensuite quand je l'exécute à nouveau elle ne prenne en compte que les cellules non barrées.

voici la macro d'origine



Sub TP()
Dim i, DerLigBase, Lig As Integer
Dim dossier, sNomFeuille As String
Dim colFeuille As Collection
Dim rCelA As Range
Dim shAct As Worksheet
Dim FeuilleExist As Boolean

'Recherche de la dernière ligne
DerLigBase = Sheets("TP").Range("A9000").End(xlUp).Row
Set colFeuille = New Collection

On Error Resume Next
'Boucle sur la plage de cellule
For Each rCelA In Sheets("TP").Range(Cells(2, 1), Cells(DerLigBase, 1))
colFeuille.Add rCelA, CStr(rCelA)
Next rCelA

'Recherche de la ligne et tri dans chaque feuille
For i = 2 To DerLigBase
dossier = Cells(i, 1).Text
Lig = Sheets(dossier).Range("A9000").End(xlUp).Row
'Copie
Sheets("TP").Range("C" & i & ":F" & i).Copy Destination:=Worksheets(dossier).Range("A" & Lig + 1)
Next i

MsgBox "opération effectuée"

End Sub
 
Re : macro seulement si les cellules ne sont pas barrées

Bonjour,


teste la propriété "Strikethrough" de l'objet "font" des cellules en question, exemple pour la cellule A1 :
Code:
    If Range("A1").Font.Strikethrough Then MsgBox "barré..."

bon après midi
@+
 
Re : macro seulement si les cellules ne sont pas barrées

en fait je sais bien que c'est cette propriété mais je n'ai pas réussi à l'intégrer efficacement à ma macro.

Il faut
1°) que les cellules traitées soient barrées automatiquement
2°) que seules les cellules non traitées soient copiées, puis qu'elles soient barrées après avoir été copiées

pourriez vous m'aider à le faire
 
Re : macro seulement si les cellules ne sont pas barrées

Re,

un exemple peut être comme ceci :
Code:
Dim c As Range
For Each c In Range("A2:A120")
    If Not c.Font.Strikethrough Then
        With c
            .Copy Destination:=Sheets("Feuil2").Range("A65536").End(xlUp)(2)
            .Font.Strikethrough = True
        End With
    End If
Next c
 
Re : macro seulement si les cellules ne sont pas barrées

euh, pb, cela barre les lignes sur la feuille de destination

l'idée est que les lignes traitées dans la feuille base soient barrées dans la feuille base de sorte que la prochaine fois, elles ne soient pas traitées à nouveau
 
Re : macro seulement si les cellules ne sont pas barrées

Re,

euh pas chez moi.... le code donné boucle sur la colonne A de la feuille active, si la cellule est non barré la copie sur la feuille 2 et barre ensuite la cellule en question de la feuille 1..... A voir le code que tu as utilisé....
 
Re : macro seulement si les cellules ne sont pas barrées

Bonjour,

pourrais tu m'intégrer ton code dans la macro qui va bien

c'est quoi la macro qui va bien ? tu n'as pas mis de fichier donc.... avec le code que je t'ai proposé, il te reste juste à adapter la plage concernée et le nom des feuilles..... Après avoir déclaré la procédure, et ce dans un module standard :
Code:
Sub test()
'le code
End Sub

bonne journée
@+
 
Re : macro seulement si les cellules ne sont pas barrées

voici le fichier


pourrais tu m'aider à correctement rédiger les macros TP et fact?dans les deux cas, je veux la même chose, que les données soient copiées dans les feuilles correspondant au dossier puis barrées sur la page base (tp ou fact) et qu'ensuite lors des mises à jour, seules les données non barrées soient traitées et qu'elles soient barrées après traitement

je précise que pour une raison que je ne comprends pas, la macro TP fonctionne (seul pb les mises à jour) mais la macro fact ne fonctionne pas, elle ne copie qu'une ligne par dossier meme quand il y en a plusieurs

merci d'avance
 
- 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
4
Affichages
461
Réponses
4
Affichages
177
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
Retour