XL 2013 Boucle coller formule (copypaste)

VBA_DEAD

XLDnaute Occasionnel
Bonjour
j`espere que vous allez bien.
j`essaie de faire une boucle pour copier -coller une formule que j`ai defini ds une table formula.
J`ai des donnees ds ma feuille Data ave des produits ds la colonne C (produit 1, 2 ,3 ...)
je veux coller la formula definie ds la feuille Formula selon qu`il s`agisse du Produit 1, 2, 3...
j`ai bien mieux explique ds mon fichier joint.

Pouvez vous m`aider? Je suis un peu bloque
je vous remercie

VBA_DEAD
 

Pièces jointes

  • CopyPasteFormula.xlsm
    15.3 KB · Affichages: 46

sousou

XLDnaute Barbatruc
bonjour
Voici un exemple de ce que tu peux faire à condition que les nom du produit soient identiques dans les deux feuille!
'Boucle sur toute les valeurs formula
Sub copieformule()
With Sheets("data")
Set premier = .Cells(2, 3)
n = 0
While premier.Offset(n, 0) <> ""
Set lformule = Sheets("formula").Columns(2).Find(premier.Offset(n, 0))
If Not lformule Is Nothing Then
premier.Offset(n, 9).Formula = lformule.Offset(0, 9).FormulaR1C1
Else
premier.Offset(n, 9) = ""
End If
n = n + 1
Wend
End With
End Sub
 

sousou

XLDnaute Barbatruc
Pas trouver comment tester si une formule est matricielle.
Mais FormulaArray te permet de rendre une formule matricielle.
Soit quelqu'un à une idée soit tu ajoutes une info qui te dira que la formule est matricielle et alors tu utilise formulaarray?
A suivre
 

sousou

XLDnaute Barbatruc
La voilà la solution


Sub copieformule()
With Sheets("data")
Set premier = .Cells(2, 3)
n = 0
While premier.Offset(n, 0) <> ""
Set lformule = Sheets("formula").Columns(2).Find(premier.Offset(n, 0))
If Not lformule Is Nothing Then
If lformule.Offset(0, 9).HasArray Then
premier.Offset(n, 9).FormulaArray = lformule.Offset(0, 9).FormulaR1C1
Else
premier.Offset(n, 9).Formula = lformule.Offset(0, 9).FormulaR1C1
End If
Else
premier.Offset(n, 9) = ""
End If
n = n + 1
Wend
 

Discussions similaires

Statistiques des forums

Discussions
312 236
Messages
2 086 477
Membres
103 230
dernier inscrit
herve42000