Création de colonnes avec formules

Résolu
dan03 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -
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. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    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")
    


    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      cela fonctionne mieux sans espace entre T et (:
      = TEXT(C1 ; "dd-mmm")
      0
  2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    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?
    0
  3. dan03 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   2
     
    Merci infiniment, c'est ce que je cherchais
    Je marque comme résolu
    Cordialement
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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à
    0