[Résolu] Alimenter un fichier global par plusieurs fichier récurrent mensuels

  • Initiateur de la discussion Initiateur de la discussion sanchopensa
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

sanchopensa

Guest
Bonjour à tous,

Je reçois de nombreux rapports ayant la même structure tous les mois, et je souhaiterais remplir automatiquement un fichier excel global (qui met en colonne les données mensuelles, une colonne par mois).

Typiquement : j'ai fait sur mon fichier qui s'appelle Reporting Global

=SI((RECHERCHEV(A5;'[Reporting Mensuel - Février 2013.xlsx]QPUC'!$A$1:$C$135;3;FAUX))<>0;RECHERCHEV(A5;'[Reporting Mensuel - Février 2013.xlsx]QPUC'!$A$1:$C$135;3;FAUX);"-")

Mon problème est que je souhaiterais qu'automatiquement il me remplisse la colonne de mars en tirant sur la cellule à côté. Je ne sais pas si possible et je ne suis pas très familière avec les macros.


Merci beaucoup pour votre aide
Cordialement
Sandrine
 
Dernière modification par un modérateur:
Re : Alimenter un fichier global par plusieurs fichier récurrent mensuels

Bonjour Sandrine, bienvenue sur XLD,

Mon problème est que je souhaiterais qu'automatiquement il me remplisse la colonne de mars en tirant sur la cellule à côté.

C'est possible en utilisant la fonction INDIRECT dans laquelle on paramétrera le mois.

Mais il y a un inconvénient sérieux : INDIRECT ne fonctionnera pas si le fichier source est fermé, elle renverra une valeur d'erreur.

Il faudrait alors du VBA.

A+
 
Re : Alimenter un fichier global par plusieurs fichier récurrent mensuels

Merci pour ta réponse,
Ca fonctionne correctement, mais dès que je souhaite faire des opérations, il faut que tous mes fichiers liés soient ouverts .... ce qui n'est pas pratique, puisque j'en ai un par mois depuis 2007

Peut-on me suggérer une macro s'il vous plait ?

Merci beaucoup !
 
Re : Alimenter un fichier global par plusieurs fichier récurrent mensuels

Re,

Voici une macro à placer dans le code de la feuille (clic droit sur l'onglet et Visualiser le code) :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 1 Then Exit Sub
Set Target = Intersect(Target(1, 0).EntireColumn, Me.UsedRange)
If Target Is Nothing Then Exit Sub
Dim F$, i As Byte, mois$, p%, an%, nouveau$
Cancel = True
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each Target In Target
  F = Target.Formula
  For i = 1 To 12
    mois = Application.Proper(Format("1/" & i, "mmmm"))
    p = InStr(F, mois)
    If p Then
      an = Val(Replace(Mid(F, p), mois, ""))
      nouveau = Application.Proper(Format(DateSerial(an, i + 1, 1), "mmmm yyyy"))
      Target(1, 2) = Replace(F, mois & " " & an, nouveau)
      Exit For
    End If
  Next
Next
End Sub
Un double-clic dans une colonne copiera les formules de la colonne à gauche si elles contiennent un nom de mois.

Le mois est remplacé par le mois suivant (de même pour l'année si nécessaire).

Nota : la 1ère lettre du mois doit être en majuscule.

A+
 
Re : Alimenter un fichier global par plusieurs fichier récurrent mensuels

Re,

Si dans la feuille tous les mois seront de la même année, la macro se simplifie :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 1 Then Exit Sub
Set Target = Intersect(Target(1, 0).EntireColumn, Me.UsedRange)
If Target Is Nothing Then Exit Sub
Dim F$, i As Byte, mois$, nouveau$
Cancel = True
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each Target In Target
  F = Target.Formula
  For i = 1 To 11 'décembre non traité
    mois = Application.Proper(Format("1/" & i, "mmmm"))
    If InStr(F, mois) Then
      nouveau = Application.Proper(Format("1/" & i + 1, "mmmm"))
      Target(1, 2) = Replace(F, mois, nouveau)
      Exit For
    End If
  Next
Next
End Sub
A+
 
Re : Alimenter un fichier global par plusieurs fichier récurrent mensuels

Re,

Voici une macro à placer dans le code de la feuille (clic droit sur l'onglet et Visualiser le code) :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 1 Then Exit Sub
Set Target = Intersect(Target(1, 0).EntireColumn, Me.UsedRange)
If Target Is Nothing Then Exit Sub
Dim F$, i As Byte, mois$, p%, an%, nouveau$
Cancel = True
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each Target In Target
  F = Target.Formula
  For i = 1 To 12
    mois = Application.Proper(Format("1/" & i, "mmmm"))
    p = InStr(F, mois)
    If p Then
      an = Val(Replace(Mid(F, p), mois, ""))
      nouveau = Application.Proper(Format(DateSerial(an, i + 1, 1), "mmmm yyyy"))
      Target(1, 2) = Replace(F, mois & " " & an, nouveau)
      Exit For
    End If
  Next
Next
End Sub
Un double-clic dans une colonne copiera les formules de la colonne à gauche si elles contiennent un nom de mois.

Le mois est remplacé par le mois suivant (de même pour l'année si nécessaire).

Nota : la 1ère lettre du mois doit être en majuscule.

A+


Merci beaucoup ! Elle fonctionne très bien
Je l'ai réadapté à mes besoins, mais elle est pleinement fonctionnelle.
 
Re : [Résolu] Alimenter un fichier global par plusieurs fichier récurrent mensuels

Re,

Si l'on veut utiliser un bouton pour créer les formules du mois suivant on peut lui affecter cette macro :

Code:
Sub MoisSuivant()
Dim c As Range, F$, i As Byte, mois$, p%, an%, nouveau$
Set c = Cells.Find("=*", , xlFormulas, , xlByColumns, xlPrevious)
If c Is Nothing Then Exit Sub
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each c In c.EntireColumn.SpecialCells(xlCellTypeFormulas)
  F = c.Formula
  For i = 1 To 12
    mois = Application.Proper(Format("1/" & i, "mmmm"))
    p = InStr(F, mois)
    If p Then
      an = Val(Replace(Mid(F, p), mois, ""))
      nouveau = Application.Proper(Format(DateSerial(an, i + 1, 1), "mmmm yyyy"))
      c(1, 2) = Replace(F, mois & " " & an, nouveau)
      Exit For
    End If
  Next
Next
End Sub
A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour