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

Modif macro (possible ?)

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

RVL

XLDnaute Occasionnel
Bonjour à tous,
est il possible de modifier la macro suivante, de telle sorte que celle ci copie uniquement les cellules deverrouillées de Feuil1.Range("A1:H25") et les colle non plus en ("Feuil2").Range("I"... mais à la même place d'origine de la Feuil1 ?

Je comprends "en gros" le VBA mais suis acctuellement incapable d'en faire une seul (comme un "grand")....

Merci pour votre aide

Sub f1versf2()
Sheets("Feuil1").Unprotect
Sheets("Feuil2").Unprotect
Dim plage As Range, c As Range, cSource As Range
Set plage = Feuil1.Range("A1:H25")
Application.ScreenUpdating = False
For Each c In plage
If Not IsEmpty(c) 'et non verrouillé' Then
Set cSource = Sheets("Feuil3").UsedRange.Find(what:=c, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)
If Not cSource Is Nothing Then
If cSource.Offset(0, 1).Value = "A" Then
c.Cut Destination:=Sheets("Feuil2").Range("I" & _
Application.Rows.Count).End(xlUp)(2) 'place d'origine de la feuil1' End If
End If
End If
Next c
plage.Locked = False
Application.ScreenUpdating = True
Sheets("Feuil1").Protect AllowFormattingCells:=True
Sheets("Feuil2").Protect AllowFormattingCells:=True
End Sub
 
Re : Modif macro (possible ?)

Bonjour,

pour le test, modifie ainsi :

Code:
If Not IsEmpty(c) And Not c.Locked Then

pour la destination :
Code:
c.Cut Destination:=Sheets("Feuil2").Range(c.Address)

bon après midi
@+
 
Re : Modif macro (possible ?)

Re,
Ca fonctionne hormis le fait que j'ai remarqué par la suite, que certaine cellules verouillées initiallement en Feuil1 ne l'etaient plus aprés la macro ???
 
Re : Modif macro (possible ?)

Bonjour à tous,

Désolé de revenir pour mon pb de cellules (1 ou +)qui se verrouillent.....alors qu'initialement elles ne l'etaient pas et ceci quand j'execute la macro en question !!!

Mais j'ai remarqué que c'etait tjs dans les même plages: I25:I28 , J42:L42 et K45:L45 ?
je vous joint la macro entiere ci-dessous

Sub f1versf2a()
Sheets("f1").Unprotect "mdp"
Sheets("f2").Unprotect "mdp"
Dim plage As Range, c As Range, cSource As Range
Set plage = Feuil1.Range("D1😀2,F1:F2,C7:K12,D14😀15,F14:F15,C20:G25,D27😀28,F27:F28,C33:L39,D41😀42,F41:F42,C47:J53,I19:I23,I25:I28,K19:L26,K45:L45,J42:L42,L49:L53,N3:N41") 'zones selection pour transfert macro
Application.ScreenUpdating = False
For Each c In plage
If Not IsEmpty(c) And Not c.Locked Then
Set cSource = Sheets("BD").UsedRange.Find(what:=c, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)
If Not cSource Is Nothing Then
If cSource.Offset(0, 8).Value = "A" Then
c.Cut Destination:=Sheets("f2").Range(c.Address)
End If
End If
End If
Next c
Range("J14:J15").Select
ActiveCell.FormulaR1C1 = "B"
Sheets("Plan Mer. P3").Select
Range("J14:J15").Select
ActiveCell.FormulaR1C1 = "A"
plage.Locked = False
Application.ScreenUpdating = True
Sheets("f1").Protect "mdp", AllowFormattingCells:=True
Sheets("f2").Protect "mdp", AllowFormattingCells:=True
End Sub

PS: comment faite-vous pour mettre une fenetre avec vos codes macro donnés en réponse ?
 
- 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
15
Affichages
782
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…