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