Création de colonnes avec formules

Résolu
Bonjour,
J'ai écrit le code suivant et j'obtiens une erreur
Dans C1, j'ai une date du format "17/10/2020"

With ActiveWorkbook.sheets("feuille2")
For i = 3 To 5
.Columns(i).Insert ' 1ère colonne (C)
.Columns(i).NumberFormat = "General"
Next

.Range("C1").FormulaLocal = "=macro(B1)"
.Range("C1").AutoFill Destination:=.Range("C1:C" & DerLign), Type:=xlFillDefault

.Range("D1").FormulaLocal = "=CNUM(DROITE(C1;4))" 'date
.Range("D1").AutoFill Destination:=.Range("D1:D" & DerLign), Type:=xlFillDefault

C'est ici que j'obtiens une erreur définie par l'application ou par l'objet
.Range("E1").FormulaLocal = "=GAUCHE(C1,5)"
.Range("E1").AutoFill Destination:=.Range("E1:E" & DerLign), Type:=xlFillDefault
End With

j'ai essayé GAUCHE(C1;5) pour tester, mais en réalité je désire obtenir
une date sous la forme 17-oct, l'année étant dans une autre colonne
Merci de votre aide Cordialement

Configuration: Windows / Edge 86.0.622.38

5 réponses

  1. Modérateur
    Bonjour,

    Tu dis

    j'ai essayé GAUCHE(C1;5) pour tester

    Ce qui semble être la bonne syntaxe... et donc.. ça donne quoi .. toujours l'erreur ??

    en réalité je désire obtenir
    une date sous la forme 17-oct,

    Ca serait donc plus cette méthode que tu devrais utiliser je pense
    = TEXT (C1 ; "dd-mmm")
    


    1. Contributeur
      cela fonctionne mieux sans espace entre T et (:
      = TEXT(C1 ; "dd-mmm")
  2. Contributeur
    bonjour,
    que veux-tu obtenir?
    un code qui ne fonctionne pas ne peut surement pas remplacer une description de l'objectif.
    pourquoi utiises-tu un code, au lieu d'enregistrer une formule?
    1. Merci infiniment, c'est ce que je cherchais
      Je marque comme résolu
      Cordialement
      1. Contributeur
        Bonjour,

        comme ceci:

        Option Explicit
        Global Debut As Integer
        Sub Calcul()
            Dim DerLigne
            With ActiveWorkbook.sheets("Feuil2")
                'Création des feuilles
                Dim i As Integer
                For i = 4 To 5
                    .Columns(i).Insert
                    .Columns(i).NumberFormat = "General"
                    .Columns(i).HorizontalAlignment = xlCenter
                Next
                'Calcul nombre de lignes
                DerLigne = sheets("Feuil2").Cells.Find("*", , , , xlByRows, xlPrevious).Row
                
                .Range("D1").FormulaLocal = "=CNUM(DROITE(C1;4))"  'date
                .Range("D1").AutoFill Destination:=.Range("D1:D" & DerLigne), Type:=xlFillDefault
                
                'C'est là ou ça coince
                'Je voudrais obtenir un résulatat comme 21-déc
                'j'ai essayé avec = GAUCHE, pour tester mais erreur
                
                .Range("E1").FormulaLocal = "=GAUCHE(C1;5)"
                .Range("E1").AutoFill Destination:=.Range("E1:E" & DerLigne), Type:=xlFillDefault
            End With
           For i = 1 To DerLigne
         Range("E" & i).Value = Format(Range("E" & i), "dd-mmmm")
            Next
        End Sub
        
        


        Voilà