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

Copier avec condition

Cazinos

XLDnaute Occasionnel
Bonsoir le forum

Voici une macro qui m'a été donnée sur ce site, je l'ai adapté à d'autres besoins mais je ne sais pas comment faire pour que la macro copie la formule uniquement si la cellule de la colonne "A" commence par T

merci

Sub copierformules()

Sheets("BX").Select

Range("A2:A" & [A65000].End(xlUp).Row).SpecialCells(xlCellTypeConstants, 23).Offset(, 11).Formula = [Nom_prénom].Formula

Range("A2:A" & [A65000].End(xlUp).Row).SpecialCells(xlCellTypeConstants, 23).Offset(, 12).Formula = [Matricule].Formula

End Sub
 

Cousinhub

XLDnaute Barbatruc
Inactif
Re : Copier avec condition

Bonsoir,

Personnellement, je pense qu'il vaut mieux écrire la formule en Dur, dans le code, du style :

Code:
For Each cel In Range("A2:A" & [A65000].End(xlUp).Row).SpecialCells(xlCellTypeConstants, 23)
    cel.Offset(, 11).FormulaR1C1 = IIf(Left(cel, 1) = "T", "=RC[-2]+RC[-1]", "")
    cel.Offset(, 12).FormulaR1C1 = IIf(Left(cel, 1) = "T", "=RC[-2]*RC[-1]", "")
Next cel
 

Cazinos

XLDnaute Occasionnel
Re : Copier avec condition

Sub CopierNomPrénomMatricule()

Sheets("Bx").Select

For Each cel In Range("A2:A" & [A65000].End(xlUp).Row).SpecialCells(xlCellTypeConstants, 23)

cel.Offset(, 11).FormulaR1C1 = IIf(Left(cel, 1) = "T", "=RC[-2]+RC[-1]", "")
cel.Offset(, 12).FormulaR1C1 = IIf(Left(cel, 1) = "T", "=RC[-2]*RC[-1]", "")

Next cel

End Sub
 

Cousinhub

XLDnaute Barbatruc
Inactif
Re : Copier avec condition

Re-,
les formules sont-elles dans la feuille "Bx"?
car la ligne de code :

Code:
Sheets("Bx").Select
est-elle indispensable?

sans le Select :

Code:
With Sheets("Bx")
For Each cel In .Range("A2:A" & .[A65000].End(xlUp).Row).SpecialCells(xlCellTypeConstants, 23)
    cel.Offset(, 11).FormulaR1C1 = IIf(Left(cel, 1) = "T", "=RC[-2]+RC[-1]", "")
    cel.Offset(, 12).FormulaR1C1 = IIf(Left(cel, 1) = "T", "=RC[-2]*RC[-1]", "")
Next cel
End With
 

Cousinhub

XLDnaute Barbatruc
Inactif
Re : Copier avec condition

Re-,
copie une des formules dans une cellule de destination, en enregistrant via l'enregistreur de macro, et tu auras ta formule.
reste ensuite à la mettre dans le code
 

Cazinos

XLDnaute Occasionnel
Re : Copier avec condition

ca ma donne ça

Sub Macro3()
Range("L2").Select
Selection.Copy
Sheets("BX").Select
Range("L2").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End Sub
 

Cousinhub

XLDnaute Barbatruc
Inactif
Re : Copier avec condition

Re-,

Démarre l'enregistreur de macro, puis sélectionne la cellule "L2" (n'efface pas la formule), clique sur F2 puis Entrée et stoppe l'enregistreur.
Tu auras ainsi la formule
 

Cazinos

XLDnaute Occasionnel
Re : Copier avec condition

merci

voici le résultat pour la formule
j'ai fait un test sur la primière colonne avec "=VLOOKUP(RC[1],BDD,2,FALSE)"
ca donne rien surement que je dois pas faire le bon truc


Sub Macro1()

Range("L2").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[1],BDD,2,FALSE)"
End Sub

Sub Macro2()
'
Range("M2").Select
ActiveCell.FormulaR1C1 = _
"=IF(MID(SUBSTITUTE(RC[-12],"" /"",""/""),16,1)=""/"",LEFT(RC[-12],15)," & Chr(10) & "IF(MID(SUBSTITUTE(RC[-12],""/ "",""/""),LEN(RC[-12])-15,1)=""/"",RIGHT(RC[-12],15),""Matricule tronqué""))"
End Sub
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…