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

Modif sur macro afin de copier une formule au fur et à mesure....

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 !

Christian0258

XLDnaute Accro
Bonjour à tout le forum,

Je souhaiterais votre aide pour de modifier une macro...Le but étant de copier deux formules col A et B en fonction du remplissage de colonnes adjacentes, afin de ne pas tirer, sur X lignes, ces deux formules...

voir fichier

Je vous remercie pour le temps que vous voudrez bien, à nouveau, me consacrer.

Bien à vous,
Christian
 

Pièces jointes

Re : Modif sur macro afin de copier une formule au fur et à mesure....

Bonjour Christian0258,

On ne pas pas vraiment tester, me semble-t-il, car il manque la feuille "Facture".
Pourquoi à chaque écriture dans l'archive ne pas écrire directement les valeurs en A at B après l'ajout de la ligne ?
Si N est la ligne de l'écriture dans archive:
VB:
sheets("Archives").range("A" & N)= N-2
sheets("Archives").range("B" & N)= sheets("Archives").range("e" & N) &  " " & sheets("Archives").range("c" & N)
 
Dernière édition:
Re : Modif sur macro afin de copier une formule au fur et à mesure....

Bonjour.
Dans le module de Feuil3 (Archives)
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim L As Long
L = Target.Row
If L > 2 Then
   Application.EnableEvents = False
   If Me.Cells(L, "C").Value <> "" And Me.Cells(L, "E").Value <> "" Then
      Me.Cells(L, "A").FormulaR1C1 = "=ROW()-2"
      Me.Cells(L, "B").FormulaR1C1 = "=RC5&"" ""&RC3"
   Else
      Me.Cells(L, 1).Resize(, 2).ClearContents
      End If
   Application.EnableEvents = True
   End If
End Sub
P.S. Mais c'est sur que si les cellules sont révisées à chaque modification sur la ligne ce n'est peut être plus la peine d'y mettre des formules :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim L As Long
L = Target.Row
If L > 2 Then
   Application.EnableEvents = False
   If Me.Cells(L, "C").Value <> "" And Me.Cells(L, "E").Value <> "" Then
      Me.Cells(L, "A").Value = L - 2
      Me.Cells(L, "B").Value = Me.Cells(L, "E").Value & " " & Me.Cells(L, "C").Value
   Else
      Me.Cells(L, "A").Resize(, 2).ClearContents
      End If
   Application.EnableEvents = True
   End If
End Sub
Cordialement
 
Dernière édition:
Re : Modif sur macro afin de copier une formule au fur et à mesure....

Re, le forum,

Merci à vous, Philippe, mapomme et Dranreb

Je reprends cet ancien post car je ne trouve plus le fichier sur lequel j'avais appliquer vos solutions.

Pourriez-vous me dire pourquoi ça ne fonctionne pas...
Bien à vous,
Christian
 

Pièces jointes

Dernière édition:
Re : Modif sur macro afin de copier une formule au fur et à mesure....

Bonjour à tout le forum,

Je reviens vers vous pour ce problème...

Pourriez-vous me dire pourquoi ça ne fonctionne pas malgré vos solutions. voir post N°1

Merci pour votre aide.

Bien amicalement,
Christian
 
Re : Modif sur macro afin de copier une formule au fur et à mesure....

Mettez cette procédure dans le module Feuil1 (Archives) rubrique Microsoft Excel Objets:
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Me.[C:G], Target) Is Nothing Or Target.Row < 3 Then Exit Sub
Me.Cells(Target.Row, 1).FormulaR1C1 = "=IF(RC[2]="""","""",ROW()-2)"
Me.Cells(Target.Row, 2).FormulaR1C1 = "=RC5&"" ""&RC3"
End Sub
Cordialement
 
Re : Modif sur macro afin de copier une formule au fur et à mesure....

Re, le forum, Dranreb,

Merci, Dranreb, pour ton travail qui fonctionne parfaitement.
J'ai une dernière demande concernant la formule concatener...voir fichier V3

Encore merci à toi pour ton aide si précieuse.

Bien à toi,
Christian
 

Pièces jointes

Re : Modif sur macro afin de copier une formule au fur et à mesure....

Bonjour à tout le forum,

Je reviens vers vous et sur cet ancien post, car j'essaye d'adapter cette macro... mais n'y arrive pas...

Pourriez-vous m'éclairer...
voir fichier joint.

Je vous remercie par avance,
Bien à vous,
Christian
 

Pièces jointes

Re : Modif sur macro afin de copier une formule au fur et à mesure....

Bonjour.

Exit Sub abandonne l'exécution de la procédure. Ça ne convient pas quand il y a plusieurs cas. Mais là vous pourriez faire autrement :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Rows.Count > 1 Or Target.Columns.Count > 1 Then Exit Sub
If Target.Row < 11 Or Target.Column < 13 Or Target.Column Mod 2 = 0 Then Exit Sub
Target.Offset(, 1).FormulaR1C1 = "=IF(RC[-1]="""","""",RC[-1])"
End Sub
 
Re : Modif sur macro afin de copier une formule au fur et à mesure....

Re, le forum, Dranreb,

Tite question :
Je souhaiterais ne pas étendre la mise en place des formules au dela de la colonne U. Donc ne pas avoir de formules automatiquement mise en place à partir de la colonne V.

A vous lire,

Merci encore pour votre aide.
Bien à vous,
Christian
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…