Création de colonnes avec formules [Résolu]

Signaler
Messages postés
29
Date d'inscription
dimanche 20 mai 2007
Statut
Membre
Dernière intervention
19 octobre 2020
-
Messages postés
12665
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
19 octobre 2020
-
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

Messages postés
29768
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 octobre 2020
2 855
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")



Cordialement,
Jordane
Messages postés
12665
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
19 octobre 2020
703
cela fonctionne mieux sans espace entre T et (:
= TEXT(C1 ; "dd-mmm")
Messages postés
12665
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
19 octobre 2020
703
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?
Messages postés
29
Date d'inscription
dimanche 20 mai 2007
Statut
Membre
Dernière intervention
19 octobre 2020

Bonjour,

Toujours le même problème
Je vous joint un fichier d'exemple
https://www.cjoint.com/c/JJsiyjk4UMh
Merci de votre aide
Messages postés
29
Date d'inscription
dimanche 20 mai 2007
Statut
Membre
Dernière intervention
19 octobre 2020

Merci infiniment, c'est ce que je cherchais
Je marque comme résolu
Cordialement
Messages postés
6978
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
19 octobre 2020
561
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à