Formule Excel qui ne s'étire pas

Fermé
Bertrand.d - Modifié par jordane45 le 7/09/2016 à 14:14
Bertrand.dh Messages postés 5 Date d'inscription mercredi 7 septembre 2016 Statut Membre Dernière intervention 12 septembre 2016 - 12 sept. 2016 à 16:27
Bonjour,

Je suis en train de développer une macro en VBA sur Excel. J'ai utilisé l'éditeur puis j'ai cleané le code et rajouté des commandes à la main.

Cependant, la formule Pos*Imp ne s'étire pas lors du lancement de la macro. La formule se met uniquement sur la première ligne et elle me rempli la colonne avec des 0.

Voici le code :
Sub KW()
'
' KW Macro
'
'
    ' Désactivation du Screen Refreshing
    Application.ScreenUpdating = False
    
    'Suppression des lignes indésirables
    Rows("1:5").Delete Shift:=xlUp
    
    ' Changement du nom des colonnes
    Range("K1").FormulaR1C1 = "CA"
    Range("I1").FormulaR1C1 = "Match Type"
    
    ' Ajustement de la taille des colonnes
    Cells.EntireColumn.AutoFit
    
    ' Sélection des données et création d'un tableau "Data"
    ActiveSheet.ListObjects.Add(xlSrcRange, Range(ActiveCell, Cells(ActiveCell.End(xlDown).Row, ActiveCell.End(xlToRight).Column)), , xlYes).Name = "Data"
    Range("Data[#All]").Select
    ActiveSheet.ListObjects("Data").TableStyle = "TableStyleLight16"
    
    ' Création des nouvelles colonnes avec formules
    Range("L1").FormulaR1C1 = "Pos*Imp"
    Range("L2").FormulaR1C1 = "=[@[Position moy.]]*[@Impressions]"
        
    Range("M1").FormulaR1C1 = "N° Semaine"
    Range("M2").FormulaR1C1 = "=ISOWEEKNUM([@Semaine])"
    
    Range("N1").FormulaR1C1 = "Année"
    Range("N2").FormulaR1C1 = "=YEAR([@Semaine])"
    
    ' Mise en force des valeurs des colonnes
    Range("Data[Impressions]").Select
    Selection.Style = "Comma"
    Selection.NumberFormat = "_-* #,##0 _€_-;-* #,##0 _€_-;_-* ""-""?? _€_-;_-@_-"
    
    Range("Data[Clics]").Select
    Selection.Style = "Comma"
    Selection.NumberFormat = "_-* #,##0 _€_-;-* #,##0 _€_-;_-* ""-""?? _€_-;_-@_-"
    
    Range("Data[Coût]").Select
    Selection.Style = "Currency"
    Selection.NumberFormat = "_-* #,##0 $_-;-* #,##0 $_-;_-* ""-""?? $_-;_-@_-"
    
    'Range("Data[Position moy.]").Select
    'Selection.Style = "Comma"
    'Selection.NumberFormat = "0.00"
    
    Range("Data[Conversions]").Select
    Selection.Style = "Comma"
    Selection.NumberFormat = "_-* #,##0 _€_-;-* #,##0 _€_-;_-* ""-""?? _€_-;_-@_-"
    
    Range("Data[CA]").Select
    Selection.Style = "Currency"
    Selection.NumberFormat = "_-* #,##0 $_-;-* #,##0 $_-;_-* ""-""?? $_-;_-@_-"

    'Range("Data[Pos*Imp]").Select
    'Selection.Style = "Comma"
    'Selection.NumberFormat = "0.00"
    
    ' Suppression de la dernière ligne du tableau
    Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByRows, SearchDirection:=xlPrevious).EntireRow.Delete



EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.
A voir également:

5 réponses

Bertrand.dh Messages postés 5 Date d'inscription mercredi 7 septembre 2016 Statut Membre Dernière intervention 12 septembre 2016
7 sept. 2016 à 14:16
Après avoir placé des points d'arrêt dans le code, l'érreur semble venir des lignes 26/27. Je serais donc interéssé par une correction de ces lignes.

Merci d'avance.
0
jordane45 Messages postés 38289 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 novembre 2024 4 703
7 sept. 2016 à 14:29
Bonjour,

Pour commencer si :Pos*Imp est une formule.... il ne faut pas oublier de mettre le "=" devant !

Range("L1").FormulaR1C1 = "=Pos*Imp"


Ensuite.. il est préférable d'utiliser le FormulaLocal au lieu du R1C1.
https://docs.microsoft.com/fr-fr/office/vba/api/excel.range.formulalocal?redirectedfrom=MSDN

0
Bertrand.dh Messages postés 5 Date d'inscription mercredi 7 septembre 2016 Statut Membre Dernière intervention 12 septembre 2016
Modifié par Bertrand.dh le 7/09/2016 à 14:35
Le ligne 26 correspond à la commande lorsque je défini le nom de la colonne, la ligne 27 correspond à la formule et le = est bien présent.
0
Bertrand.dh Messages postés 5 Date d'inscription mercredi 7 septembre 2016 Statut Membre Dernière intervention 12 septembre 2016
7 sept. 2016 à 17:27
up
0
Bertrand.dh Messages postés 5 Date d'inscription mercredi 7 septembre 2016 Statut Membre Dernière intervention 12 septembre 2016
12 sept. 2016 à 10:06
up
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
12 sept. 2016 à 11:36
Bonjour,

"cleaner" est un verbe français ?
Après ce cynisme, ça me paraît normal que la formule ne s'étire pas puisque rien dans le code ne permet de l'étirer, du genre :
Selection.AutoFill Destination:=Range("...."), Type:=xlFillDefault

En tout cas dans ce qui apparaît.
S'il y a des 0 c'est parce que tu indiques le format des cellules.

A+
0
Bertrand.dh Messages postés 5 Date d'inscription mercredi 7 septembre 2016 Statut Membre Dernière intervention 12 septembre 2016
12 sept. 2016 à 16:27
Merci pour ta réponse. Le problème était juste un caprice d'Excel. La macro marche de nouveau sans problème.

Ps : Pas besoin d'instructions pour étirer les formules puisque j'ai mis mes données dans un tableau. L' autofill est automatique dedans.
0