Recopier plusieurs formules
Résolu
SolidSnake_59
Messages postés
16
Statut
Membre
-
SolidSnake_59 Messages postés 16 Statut Membre -
SolidSnake_59 Messages postés 16 Statut Membre -
Bonjour à tous,
Cela fait plusieurs heures que je me creuse les méninges pour résoudre mon prb... En vain.
J'espère que vous saurez m'aider !!
Voici mon code :
Et lors du beug, c'est cette ligne qui est mise en surbrillance :
Selection.AutoFill Destination:=Range("G2:G" & dernlign)
Merci à tous de votre aide.
Cela fait plusieurs heures que je me creuse les méninges pour résoudre mon prb... En vain.
J'espère que vous saurez m'aider !!
Voici mon code :
Sub MacroFiscadas()
' Récupération nom fichier macro
nomfichierMacro = ActiveWorkbook.Name
'Vidage feuille 2
Sheets("Feuil2").Select
Cells.Select
Selection.Delete
Range("A1").Select
'Ouverture du fichier
fichierSource = Application.GetOpenFilename
'Transfert des données vers Excel
Workbooks.Open Filename:=fichierSource
nomfichierSource = ActiveWorkbook.Name 'recup nom fichier excel
'Sheets("CONVERT").Select
Columns("A:F").Select
Selection.Copy
Windows(nomfichierMacro).Activate
Sheets("Feuil2").Select
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Workbooks(nomfichierSource).Close SaveChanges:=False
' Gestion matricule
Sheets("Feuil2").Select
dernlign = [B655536].End(xlUp).Row 'recalcul de la dernière ligne
'MsgBox (dernlign)
Range("G1").Value = "CHPPARAM_ADRESSE.CPADR_M_FISCADASHT"
Range("H1").Value = "CHPPARAM_ADRESSE.CPADR_M_FISCADASTTC"
Range("I1").Value = "CHPPARAM_ADRESSE.CPADR_B_PROPOSFISCADAS"
Range("J1").Value = "CHPPARAM_ADRESSE.CPADR_B_VALIDFISCADAS"
Range("B1").Value = "ADR_CODE"
'envoi formule dans G2
Range("G2").Select
ActiveCell.FormulaR1C1 = _
"=IF(AND(RC[-1]<tranche1,RC[-1]<>0),montant1,IF(AND(RC[-1]>=tranche1,RC[-1]<tranche2),montant2,IF(AND(RC[-1]>=tranche2,RC[-1]<tranche3),montant3,IF(AND(RC[-1]>=tranche3,RC[-1]<tranche4),montant4,IF(RC[-1]>=tranche4,montant5)))))"
Range("H2").Select
ActiveCell.FormulaR1C1 = _
"=(RC[-1]*(1+(tva/100)))"
'copie formule
Selection.AutoFill Destination:=Range("G2:G" & dernlign)
Range("G2:G").Select
'copie colle valeur
Sheets("feuil2").Select
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
MsgBox ("Good job !")
End Sub
Le problème est que ça beug avec le message : "La méthode de la classe Range a échoué".
Je débute et j'ai regardé sur le net pour trouver ma réponse mais rien ne marche.
Pour info, la macro fonctionnait très bien avant que j'insère ma seconde formule :
Range("H2").Select
ActiveCell.FormulaR1C1 = _
"=(RC[-1]*(1+(tva/100)))"
Et lors du beug, c'est cette ligne qui est mise en surbrillance :
Selection.AutoFill Destination:=Range("G2:G" & dernlign)
Merci à tous de votre aide.
A voir également:
- Recopier plusieurs formules
- Formule moyenne excel plusieurs colonnes - Guide
- Formules - Télécharger - Études & Formations
- Formule excel pour additionner plusieurs cellules - Guide
- Formules excel de base - Guide
- Virginie organise un rallye avec 30 équipes. elle veut créer un code pour désigner chaque équipe. elle a commencé à la main, mais elle voudrait le faire calculer à l'aide d'une formule. proposez une formule comportant une seule fonction et à recopier vers le bas dans la colonne a du fichier à télécharger. quelle formule sera en a9 ? - Forum Excel
3 réponses
Bonjour Frenchie83,
Tva=20 tva est le nom d'une cellule de la feuille1 et renvoie à la valeur 20.
Cette formule est bonne dans ma macro car le montant TTC se calcule bien. Sauf que je n'arrive pas à recopier les cellules G2, H2 et I2 vers le bas (jusqu'à la dernière cellule contenant des données.
Ma ligne "selection.autofill" fonctionne si je ne mets qu'une seule formule (G2). Mais dès lors que j'ai d'autres formules dans les cellules H2 et I2 je ne sais pas comment faire pour toutes les recopier vers le bas...
J'ai un beug à chaque fois.
Merci
Tva=20 tva est le nom d'une cellule de la feuille1 et renvoie à la valeur 20.
Cette formule est bonne dans ma macro car le montant TTC se calcule bien. Sauf que je n'arrive pas à recopier les cellules G2, H2 et I2 vers le bas (jusqu'à la dernière cellule contenant des données.
Ma ligne "selection.autofill" fonctionne si je ne mets qu'une seule formule (G2). Mais dès lors que j'ai d'autres formules dans les cellules H2 et I2 je ne sais pas comment faire pour toutes les recopier vers le bas...
J'ai un beug à chaque fois.
Merci
Range("H2").Select
ActiveCell.FormulaR1C1 = "=(RC[-1]*(1+(tva/100)))"
'copie formule
Selection.AutoFill Destination:=Range("G2:G" & dernlign)
vous sélectionnez H2 et vous voulez faire une recopie en G, il y a quelque chose qui cloche.
Pour éviter la recopie, vous pouvez écrire
Range("H2:H" & dernlign).FormulaR1C1 = "=(RC[-1]*(1+(tva/100)))"
idem pour les autres colonnes
cdlt