Dans une macro excel,
Je cherche à copier une Formule1
dans la Première Colonne
De la case A1 à la case Ax ou x est la Formule2 définissant le numéro de ligne.
Merci d'avance au généreux solutionneur![]()
Dans une macro excel,
Je cherche à copier une Formule1
dans la Première Colonne
De la case A1 à la case Ax ou x est la Formule2 définissant le numéro de ligne.
Merci d'avance au généreux solutionneur![]()
Bonjour,
Je n'ai pas bien compris ce que tu voulez faire.
Je penses que tu n'est pas sur le bon forum.
tu auras plus de chance de réponse si tu poste sur le forum vba et non vb.net
A bientôt
Bonjour,
Sais-tu qu'il existe un forum Excel -vba... Tu pourrais aller faire un tour là-bas, il y a peut-être plus de gens qui pourront te répondre![]()
Je repose ma question à tous les VB-istes.
Soit une Formule-VB nommée F1 (Formule Classique qui compte des lignes)
Soit une Formule-VB nommée F2 (Formule rendant un entier)
Je voudrais Copier (en vb !!!) la Formule F1 dans toutes les cellules de la première colonne jusqu'à la ligne F2
Comment procéder ?
J'offre unau premier qui me le dicte.
Formule1 F1
Formule2 F2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ActiveCell.FormulaR1C1 = _ "=MAX(IFERROR(MATCH(""zz"",INDIRECT(ADDRESS(1,COLU MN()+3+1,4)): INDIRECT(ADDRESS(1048576,COLUMN()+3+1,4))),0), IFERROR(MATCH(9^9,INDIRECT(ADDRESS(1,COLUMN()+3+1,4)) :INDIRECT(ADDRESS(1048576,COLUMN()+3+1,4))),0))"
On a rien sans rien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ActiveCell.FormulaR1C1 = _ :"=MAX(IFERROR(MATCH(""zz"",INDIRECT(ADDRESS(ROW() ,COLUMN()+3+1,4)) :INDIRECT(ADDRESS(ROW(),1048576,4))),0),IFERROR(MA TCH(9^9, INDIRECT(ADDRESS(ROW(),COLUMN()+3+1,4)) :INDIRECT(ADDRESS(ROW(),16384,4))),0))"![]()
Pourquoi pas :
ou bien
Code : Sélectionner tout - Visualiser dans une fenêtre à part Range("A1:F2").Formula = Range("A1").Formula
ou bien même :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Range("A1").AutoFill Destination:=Range("A1:F2"), Type:=xlFillDefault
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Range("A1").Copy Range("A1:F2").PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False
Hoho aalex. Sympa pour l'aide ...
Ca va avancer . Je l'espère.
Après essai : j'ai :
Sub ho()
Elle arrive jusqu'à la seconde ligne. (au lieu de la 156°)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 ' ' ho Macro ' ' F1 = ActiveCell.FormulaR1C1 = _ "=MAX(IFERROR(MATCH(""zz"",INDIRECT(ADDRESS(ROW(),COLUMN()+3+1,4)):INDIRECT(ADDRESS(ROW(),1048576,4))),0),IFERROR(MATCH(9^9,INDIRECT(ADDRESS(ROW(),COLUMN()+3+1,4)):INDIRECT(ADDRESS(ROW(),16384,4))),0))" F2 = ActiveCell.FormulaR1C1 = _ "=MAX(IFERROR(MATCH(""zz"",INDIRECT(ADDRESS(1,COLUMN()+3+1,4)):INDIRECT(ADDRESS(1048576,COLUMN()+3+1,4))),0),IFERROR(MATCH(9^9,INDIRECT(ADDRESS(1,COLUMN()+3+1,4)):INDIRECT(ADDRESS(1048576,COLUMN()+3+1,4))),0))" Range("A1").Copy Range("A1:F2").PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False End Sub
La seconde Autofill ne trouve pas ---> Débogage
La première ne donne rien du tout.
quand même.
Paradoxalement, ce me remplit les 2 premières lignes jusqu'en F1 et F2
Etonnant !
Bref il s'agit de la plage A1:F2 et non ma formule F2
Peux tu préciser, tu veux copier une formule qui se situe dans quelle cellule et vers quelle plage ?
Il s'agit de copier la formule
Qui se trouve déjà en A1 (ça facilite, on ne l'insère pour l'instant pas dans le code)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ActiveCell.FormulaR1C1 = _ "=MAX(IFERROR(MATCH(""zz"",INDIRECT(ADDRESS(1,COLU MN()+3+1,4)): INDIRECT(ADDRESS(1048576,COLUMN()+3+1,4))),0), IFERROR(MATCH(9^9,INDIRECT(ADDRESS(1,COLUMN()+3+1,4)) :INDIRECT(ADDRESS(1048576,COLUMN()+3+1,4))),0))"
Sur [A1:An]
Où An est défini par
n où n est l'entier-réponse de la formule :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ActiveCell.FormulaR1C1 = _ "=MAX(IFERROR(MATCH(""zz"",INDIRECT(ADDRESS(1,COLUMN()+3+1,4)) :INDIRECT(ADDRESS(1048576,COLUMN()+3+1,4))),0), IFERROR(MATCH(9^9,INDIRECT(ADDRESS(1,COLUMN()+3+1,4)): INDIRECT(ADDRESS(1048576,COLUMN()+3+1,4))),0))"
Rappel des faits :
La formule maladroitement appelée F2 nous a fait copier
La formule se trouvant en A1 sur la plage A1:F2
Ce que je savais déjà faire
Alors :
Code : Sélectionner tout - Visualiser dans une fenêtre à part n = activecell.valueTu dis
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 activecell.Copy Range("A1:A" & n).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False
WaaaaaaaW
T'es le meilleur !
Ca me débloque pour un bon moment j'espère.
Merci mille fois aalex.
![]()
Partager