XL 2019 Tirer formule après selection d'un case (case variable)

  • Initiateur de la discussion Initiateur de la discussion vba95
  • 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 !

vba95

XLDnaute Nouveau
Bonjour à tous,

J'ai besoin de votre aide sur le fichier en pièce jointe.
Dans l'onglet Feuil1 je souhaite que ma macro copie/colle la date de l'onglet DATA sur la dernière case non vide la la ligne 3.
Ensuite sur la case du dessous je souhaite que ma macro inscrive la formule =SIERREUR(RECHERCHEV(A4;DATA!A:E;2;FAUX);"").
Jusque la tout va bien, je bloque sur la suite.
Ensuite, je souhaite que ma macro sélectionne la case avec la formule et la tire vers le bas.
Le problème avec la vba ci-dessous, est qu'elle ne tire la formule uniquement sur la colonne I et que ca ne fonctionne pas sur les autres colonnes quand ma vba précédente copie/colle la formule dans les autres colonnes.
Selection.AutoFill Destination:=Range("I4:I17")
Range("I4:I17").Select

Par avance merci de votre aide.
 

Pièces jointes

Bonjour,

Une macro à titre d'exemple. Pas besoin de formule en ligne 2.
VB:
Sub CopierDate()
    Dim PremièreColonneLibre As Integer

    PremièreColonneLibre = Cells(3, Columns.Count).End(xlToLeft).Column + 1

    With ThisWorkbook
        .Worksheets("DATA").Range("A1").Copy .Worksheets("Feuil1").Cells(2, PremièreColonneLibre)
        .Worksheets("Feuil1").Cells(2, PremièreColonneLibre).NumberFormat = "dddd"
        .Worksheets("DATA").Range("A1").Copy .Worksheets("Feuil1").Cells(3, PremièreColonneLibre)
        .Worksheets("Feuil1").Cells(3, PremièreColonneLibre).NumberFormat = "dd-mmm"
    End With
End Sub
 
Dernière édition:
Maintenant si tu veux vraiment utiliser une formule:
Code:
Sub CopierDate()
    Dim PremièreColonneLibre As Integer
    Dim LettreColonne As String
   
    PremièreColonneLibre = Cells(3, Columns.Count).End(xlToLeft).Column + 1
    LettreColonne = Split(Cells(1, PremièreColonneLibre).Address, "$")(1)
   
    With ThisWorkbook
        .Worksheets("Feuil1").Cells(2, PremièreColonneLibre).FormulaLocal = _
            "=SI(" & LettreColonne & "3="""";"""";" & LettreColonne & "3)"
        .Worksheets("Feuil1").Cells(2, PremièreColonneLibre).NumberFormat = "dddd"
       
        .Worksheets("DATA").Range("A1").Copy .Worksheets("Feuil1").Cells(3, PremièreColonneLibre)
        .Worksheets("Feuil1").Cells(3, PremièreColonneLibre).NumberFormat = "dd-mmm"
    End With
End Sub
 
Dernière édition:
Bonjour.
Moi j'ai plutôt compris ça :
VB:
Sub Macro20()
   Dim Dt As Date, Col As Long
   Dt = Feuil1.[A1].Value
   Col = 3 + Dt - Feuil3.[C3].Value
   Feuil3.Cells(2, Col).Resize(2).Value = Dt
   With Intersect(Feuil3.Cells(4, Col).Resize(1000000), Feuil3.UsedRange)
      .FormulaR1C1 = "=IFERROR(INDEX(DATA!R4C2:R999C2,MATCH(RC1,DATA!R4C1:R999C1,0)),"""")"
      .Value = .Value
      End With
   End Sub
 
- 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

Réponses
18
Affichages
738
Retour