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 à tous,
Salut aux amis,

Christiian : je n'ai pas lu tous les messages mais si la cible est vide autant effacer la formule en décalage +1 :
VB:
Option Explicit

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 > 21 Or Target.Column Mod 2 = 0 Then Exit Sub
Target.Offset(, 1).Formula = "=IF(RC[-1]="""","""",RC[-1])"
If Target = "" Then Target.Offset(, 1) = ""
End Sub

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

salut

pour une simple copie, tu peux te dispenser de la formule, non ?
Avec la demande initiale
VB:
Private Sub Worksheet_Change(ByVal R As Range)
  Select Case R.Column
    Case Is = 13, 15, 17, 19, 21
      If R.Row > 10 Then  R(1, 2).Formula = "=IF(RC[-1]="""","""",RC[-1])"
  End Select
End Sub
Qu'en est-il en cas de saisie dans la colonne de droite ?
Un autre exemple, sans formule, pour les 2 cas
VB:
Private Sub Worksheet_Change(ByVal R As Range)
  Application.EnableEvents = 0
  Select Case R.Column
    Case Is = 13, 15, 17, 19, 21: If R.Row > 10 Then R(1, 2) = R
    Case Is = 14, 16, 18, 20, 22: If R.Row > 10 Then R(1, 0) = R
  End Select
  Application.EnableEvents = 1
End Sub
 
Re : Modif sur macro afin de copier une formule au fur et à mesure....

Re, le forum, Dranreb, JCGL, Si...

Merci à vous pour toutes vos réponses précédentes...

Je reviens, à nouveau, vers vous car je souhaite améliorer la saisie/*copiée ou *non...

voir demande sur fichier joint.

Merci pour votre aide si précieuse.
Bien amicalement,
Christian
 

Pièces jointes

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

Bonjour à tous,

un essai

Code:
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 < 6 Or Target.Column > 29 Or Target.Column Mod 2 = 0 Then Exit Sub
If Cells(9, Target.Column + 1).Value <> "ò" 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,

Merci, Tototiti2008, pour ton travail qui répond tout à fait à mon attente.

C'est parfait.

Bien à toi,
Christian

PS : dis-moi la macro de SI...(Post au-dessus) est également très intéressante, d'après toi ou placer, dans sa macro ta ligne de code de restriction pour que ça fonctionne également ;
If Cells(9, Target.Column + 1).Value <> "ò" Then Exit Sub
 
Re : Modif sur macro afin de copier une formule au fur et à mesure....

Bonjour à tous,

Merci, Tototiti2008, pour ton travail qui répond tout à fait à mon attente.
Je suis parti de la proposition de Dranreb, juste ajouté une ligne 🙂

dis-moi la macro de SI...(Post au-dessus) est également très intéressante, d'après toi ou placer, dans sa macro ta ligne de code de restriction pour que ça fonctionne également ;
Certes mais elles testent les numéros de colonnes, tu veux adapter la 2ème (sans formule) ? et l'idée de JCGL de vider la formule si on vide la cellule ? sympa aussi, non ?
au bout, fait ton marché 🙂
 
Re : Modif sur macro afin de copier une formule au fur et à mesure....

Re, le forum , Tototi2008


Merci pour ton aide et l'intérêt que tu portes à ma demande.

C'est vrai que la macro de, Si..., me plaît bien dans la mesure ou il n'y a, au final, aucune formule inscrite et que l'on peut faire la saisie sur l'une ou l'autre des colonnes.
Donc je souhaiterais, si c'est possible, que tu puisses intégrer à la 2ème macro de, Si..., la ligne de restriction qui permet de ne saisir que si il n'y a pas de texte inscrit sur la ligne 9 pour les colonnes concernées.

Je te remercie, par avance, pour le temps que vous voudrez bien vouloir m'accorder.

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

Re,

un essai

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim R As Range
  Application.EnableEvents = 0
  For Each R In Target.Cells
    If R.Row > 10 Then
        If Cells(9, R.Column).Value = "ò" Then R(1, 0) = R
        If Cells(9, R.Column + 1).Value = "ò" Then R(1, 2) = R
    End If
  Next R
  Application.EnableEvents = 1
End Sub
 
Re : Modif sur macro afin de copier une formule au fur et à mesure....

salut

un exemple pour continuer à éliminer les formules avec la première macro : les colonnes déterminées en feuille 1 définissent les colonnes sensibles de la feuille 2 à la sélection de celle-ci.
 

Pièces jointes

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

Re, le forum, tototiti2008,

Dis mois, pourquoi ça plante, sous Excel 2000, lorsque l'on passe sur la feuille "Saisies" ?


Merci pour ton aide si précieuse,

Bien à toi.

Christian
 
Dernière édition:
- 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…