Macro pour archiver une ligne sur une autre feuille dans un tableau annuel...

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 !

Christian0258

XLDnaute Accro
Bonjour à tout le forum,

Je souhaiterais, à nouveau, votre aide afin d'écrire une macro pour archiver une ligne mensuelle
dans un tableau annuel sur une autre feuille...

voir fichier joint


Je vous remercie par avance, pour le temps que vous voudrez bien vouloir m'accorder.

Bien amicalement,

Christian
 

Pièces jointes

Re : Macro pour archiver une ligne sur une autre feuille dans un tableau annuel...

Bonjour Christian,

Bah en Bilan!E10 ou Bilan!F10 aucune formule ne renvoie de dates.

Avec par exemple =DATE(An;1;1) il sera très facile d'utiliser la fonction EQUIV ou en VBA Application.Match.

Tu devrais alors arriver à t'en sortir tout seul.

A+
 
Re : Macro pour archiver une ligne sur une autre feuille dans un tableau annuel...

Re, le forum, job75,

Bonjour, job75, en Bilan!E10 et F10 la formule renvoie la date mois, et le but étant de placer la ligne 1 de la feuille Extraction en lieu et place du mois correspondant sur la feuille Bilan...
Concernant la fonction EQUIV associée avec =DATE(An;1;1), je ne maîtrise pas trop...il y a en plus une deuxième condition (Activité) à prendre en compte...peux-tu me donner une ébauche, même si je préférerais en VBA...


Merci pour ton aide.

Bien à toi,
Christian
 
Dernière édition:
Re : Macro pour archiver une ligne sur une autre feuille dans un tableau annuel...

Re,

Bon ce n'est pas EQUIV qu'il faut utiliser.

Avec SOMMEPROD en H10 :

Code:
=SOMMEPROD((ANNEE(Extraction!$B$11:$B$42)=An)*(MOIS(Extraction!$B$11:$B$42)=MOIS($E10))*(Extraction!$C$11:$C$42=$G10)*Extraction!D$11:D$42)
et en H11 :

Code:
=SOMMEPROD((ANNEE(Extraction!$B$11:$B$42)=An)*(MOIS(Extraction!$B$11:$B$42)=MOIS($E11))*(Extraction!$C$11:$C$42<>$G10)*Extraction!D$11:D$42)
Puis Copier-Collage spécial-Formules de H10:H11 sur H10:AE15 et sur les trimestres en-dessous.

Formules évidentes en H16:H17.

Bien noter qu'il s'agit de dates en colonne E.

Fichier joint.
 

Pièces jointes

Re : Macro pour archiver une ligne sur une autre feuille dans un tableau annuel...

Re, le forum, job75,

Merci pour ces formules complexes que je garde.
Mais finalement, si je souhaitais par macro, c'est que dans mon cas des formules ne peuvent pas convenir seule une macro peut copier coller les données en fonction des mois extrait en feuille extraction...

En effet la feuille Extraction reçoit, au fil du temps, en ligne 1, tous les mois de l'année.

A vous lire.

Bien à vous,
Christian
 
Re : Macro pour archiver une ligne sur une autre feuille dans un tableau annuel...

Bonjour Christian, le forum,

J'avais complètement zappé ton affaire de ligne 1...

Car en fait je n'en vois pas l'utilité.

Mais bon si tu y tiens vois cette macro dans le fichier joint :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lig As Variant, ncol%
With Sheets("Bilan")
  lig = Application.Match([B1], .[F:F], 0)
  If IsError(lig) Then Exit Sub
  If [C1] = "Autres" Then lig = lig + 1
  ncol = Cells(1, Columns.Count).End(xlToLeft).Column - 2
  .Cells(lig, "G").Resize(, ncol) = [C1].Resize(, ncol).Value
End With
End Sub
Bonne journée.
 

Pièces jointes

Re : Macro pour archiver une ligne sur une autre feuille dans un tableau annuel...

Re,

En fait ce que je n'avais pas compris c'est que dans la feuille "Extraction" il y a toujours un seul mois.

Maintenant je vois l'utilité de la ligne 1.

A+
 
Re : Macro pour archiver une ligne sur une autre feuille dans un tableau annuel...

Re, le forum, job75,

Oui la ligne 1 sert à ça...

Dis-moi, job75, si on veut passer directement voir le résultat dans la feuille Bilan et donc ne pas avoir à valider une cellule dans la feuille Extraction, comment modifier ta macro...

à te lire,

Encore merci pour ton aide.

Bien à toi,
Christian
 
Re : Macro pour archiver une ligne sur une autre feuille dans un tableau annuel...

Re,

En fait c'est mieux avec un bouton :

Code:
Private Sub CommandButton1_Click()
Dim lig As Variant, ncol%
With Sheets("Bilan")
  lig = Application.Match([B1], .[F:F], 0)
  If IsError(lig) Then Exit Sub
  If [C1] = "Autres" Then lig = lig + 1
  ncol = Cells(1, Columns.Count).End(xlToLeft).Column - 2
  .Cells(lig, "G").Resize(, ncol) = [C1].Resize(, ncol).Value
  .Activate
End With
End Sub
Fichier (2).

A+
 

Pièces jointes

bonjours à tous,
j'ai regarder le code qui a été fait avant pour m'aider à corriger mon soucis mais j'y arrive pas . Pouvez vous m'aider merci.
J'ai un résultat d'un filtre (liste ) et je veux le sélectionner et le couper et le coller dans une autre feuille .

voilà le code:

If .AutoFilterMode Then .AutoFilterMode = False
.Range("A3").AutoFilter Field:=1, Criteria1:=False '"VRAI"
.Range("A4", .Cells(.Rows.Count, "A").End(xlUp).Offset(0, .Cells(1, .Columns.Count).End(xlToLeft).column - 1)).SpecialCells(xlCellTypeVisible).Cells.Select
End if

'on les copie
Selection.Cut
I = Sheets("Archives").Range("A65536").End(xlUp).Row + 1
Sheets("BASE DE DONNEES").Range("A3:AQ1900").Copy Destination:=Sheets("Archives").Range("I")
Sheets("Archives").Select
Tu séléctionnes le classeur F1 puis la feuille 2 puis la cellule A1
l = ActiveSheet.["A65536"].End(x1Up).Row + 1



Range("A3" & I).Select
ActiveSheet.Paste
ActiveSheet.Cells(l, 1) = Tdate ' mettre la date à chaque fois qu'on archive
 
- 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

Discussions similaires

Retour