Copier une feuille excel en décalant toutes les formules d'une ligne

Maxi

XLDnaute Nouveau
Bonjour à tous,

J'ai créé un tableau excel pour le mois de JANVIER pour synthétiser tous les paiements, honoraires, factures fournisseurs etc de mes clients. Ce tableau est lui même alimenté par des tableaux sources de mes comptes clients. J'aimerai dupliquer ce tableau pour les mois de Février, Mars, Avril etc...Sans avoir à retaper toutes les formules dans chaque case pour les 11 autres mois de l'année.

Pour ceci, il me suffirait juste de décaler toutes les formules de ma feuille excel entière d'une ligne. Pour vous donner un exemple :

La case ='[TABLEAU MAYER 2013.xlsx]Studio Rue Vicomté'!$H$17+'[TABLEAU MAYER 2013.xlsx]Studio Rue Vicomté'!$I$17

du tableau du mois de Janvier deviendrait :

='[TABLEAU MAYER 2013.xlsx]Studio Rue Vicomté'!$H$18+'[TABLEAU MAYER 2013.xlsx]Studio Rue Vicomté'!$I$18

pour mon tableau du mois de février.

Et pareil avec toutes les formules de toutes les cases de la feuille excel...

Si vous aviez la solution, vous me feriez gagner un temps précieux! Merci de votre aide :)
 

chris

XLDnaute Barbatruc
Re : Copier une feuille excel en décalant toutes les formules d'une ligne

Bonjour

Le souci est qu'avec un classeur externe fermé on ne peut utiliser la fonction INDIRECT ni DECALER.
Tu as 2 solutions

  • créer un onglet avec les liens vers le classeur TABLEAU MAYER 2013.xlsx et utiliser ces cellules dans les autres onglets.
  • utiliser INDEX :
    Code:
    =INDEX('[TABLEAU MAYER 2013.xlsx]Studio Rue Vicomté';17;8)+INDEX('[TABLEAU MAYER 2013.xlsx]Studio Rue Vicomté';17;9)
    et remplacer la valeur 17 par un calcul.
    Ce calcul dépend de ce qu'il y a dans tes onglets : si on peut y trouver le mois il suffit d'ajouter la valeur du mois + 16
 

Maxi

XLDnaute Nouveau
Re : Copier une feuille excel en décalant toutes les formules d'une ligne

Bonjour

Le souci est qu'avec un classeur externe fermé on ne peut utiliser la fonction INDIRECT ni DECALER.
Tu as 2 solutions

  • créer un onglet avec les liens vers le classeur TABLEAU MAYER 2013.xlsx et utiliser ces cellules dans les autres onglets.
  • utiliser INDEX :
    Code:
    =INDEX('[TABLEAU MAYER 2013.xlsx]Studio Rue Vicomté';17;8)+INDEX('[TABLEAU MAYER 2013.xlsx]Studio Rue Vicomté';17;9)
    et remplacer la valeur 17 par un calcul.
    Ce calcul dépend de ce qu'il y a dans tes onglets : si on peut y trouver le mois il suffit d'ajouter la valeur du mois + 16

Merci de ton aide.

Je ne sais pas trop ce que tu appelles un classeur fermé. En fait ma feuille 1 serait le mois de janvier, la feuille 2 le mois de février etc...
Pour que ce soit plus clair, voici mon tableau. Il n'est pas encore complet, mais je pense que tu en as assez pour comprendre ou je veux en venir. Je dois avoir à peu près 400 cases à alimenter sur le tableau du mois de janvier, si je pouvais automatiquement décaler d'une ligne sur le mois de fevrier ce serait top ;-) sinon je vais devoir oublier la plage cet été :-(
 

Pièces jointes

  • SYNTHESE VIREMENTS.xlsx
    62.8 KB · Affichages: 104

job75

XLDnaute Barbatruc
Re : Copier une feuille excel en décalant toutes les formules d'une ligne

Re,

En exécutant une fois cette macro vous pourrez profiter de la plage :

Code:
Sub Formules()
Dim w As Worksheet
Application.DisplayAlerts = False 'si le fichier source est introuvable
With Sheets("Janvier").[C3:I72]
  For Each w In Worksheets
    If IsDate("1 " & w.Name) Then
      .Copy w.[C3]
      w.[C3:I72].Replace "$16", "$" & 15 + Month("1 " & w.Name), xlPart
    End If
  Next
End With
End Sub
A+
 

chris

XLDnaute Barbatruc
Re : Copier une feuille excel en décalant toutes les formules d'une ligne

Bonjour

...

Je ne sais pas trop ce que tu appelles un classeur fermé...(

Tes formules font référence au classeur TABLEAU MAYER 2013.xlsx qui est un autre classeur et qui est sans doute fermé quand tu utilises celui qui contient les onglets mois.

La macro de Job75, que je salue
:), te satisfaisant, tout va bien.

 

Discussions similaires

Statistiques des forums

Discussions
312 153
Messages
2 085 800
Membres
102 980
dernier inscrit
brossadan