Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Restitution cellule

risch_cyril

XLDnaute Nouveau
Bonjour,
mon code devrait restituer une valeur numérique, mais il me restitue du texte. Comment cela se fait t-il ?
VB:
Sub Calcul()
Dim chemin$, fichier$, a(), n&
chemin = ThisWorkbook.Path & "\"
fichier = Dir(chemin & "gestion*.xlsx")
ReDim a(1 To Rows.Count, 1 To 2)
While fichier <> ""
    n = n + 1
    a(n, 1) = fichier
    a(n, 2) = "=SUM('" & chemin & "[" & fichier & "]" & "Janvier:Décembre'!C168)" 'formule de liaison
    fichier = Dir
Wend
'---restitution---
With Feuil1 'CodeName à adapter
    If .FilterMode Then .ShowAllData 'si la feuille est filtrée
    With .[E2] '1ère cellule de destination, à adapter
        If n Then .Resize(n, 2) = a
        If n Then
            .Offset(n + 1) = "Total"
            .Offset(n + 1, 1) = "=SUM(R[" & -n - 1 & "]C:R[-2]C)"
        End If
    End With
    With .UsedRange: End With 'actualise la barre de défilement verticale
End With
End Sub
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Il manque .FormulaR1C1 derrière .Offset(n + 1, 1)
Sinon il assume .Value, qui peut éventuellement marcher quand même si c'est une formule en notation A1, mais pas R1C1. La ligne absolue serait plus simple, non ?
VB:
.Offset(n + 1, 1).FormulaR1C1 = "=SUM(R2C:R[-2]C)"
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour rish_cyril, Bernard,

Il s'agit (à peu près) du code que je vous ai donné, il manque cependant une ligne pour l'effacement.

Donc comme je l'ai déjà dit vous modifiez mes codes et fichiers, alors débrouillez-vous.
Il manque .FormulaR1C1 derrière .Offset(n + 1, 1)
Non, ce n'est pas nécessaire, comme il y a des crochets dans la formule VBA sait qu'elle est du type R1C1.

A+
 

risch_cyril

XLDnaute Nouveau
La ligne qu'il manque pause probléme lors de l'éxecution de la macro ça me la met en jaune donc sur un autre ticket quelqu'un ma dit qu'elle nétait pas nécessaire j'ai actuellemtn se code ci dessou mais le résultat dans la case est toujours affiché comme "gestion_2021" et non pas la somme (résultat en E2 de la feuille tableau)

VB:
Sub Calcul()
Dim chemin$, fichier$, a(), n&
chemin = ThisWorkbook.Path & "\"
fichier = Dir(chemin & "gestion*.xlsx")
ReDim a(1 To Rows.Count, 1 To 2)
While fichier <> ""
    n = n + 1
    a(n, 1) = fichier
    a(n, 2) = "=SUM('" & chemin & "[" & fichier & "]" & "Janvier:Décembre'!C168)" 'formule de liaison
    fichier = Dir
Wend
'---restitution---
With Feuil1 'CodeName à adapter
    If .FilterMode Then .ShowAllData 'si la feuille est filtrée
    With .[E2] '1ère cellule de destination, à adapter
        If n Then .Resize(n, 2) = a
        .Offset(n + 1, 1).FormulaR1C1 = "=SUM(R2C:R[-2]C)"
        If n Then
            .Offset(n + 1) = "Total"
            .Offset(n + 1, 1) = "=SUM(R[" & -n - 1 & "]C:R[-2]C)"
        End If
    End With
    With .UsedRange: End With 'actualise la barre de défilement verticale
End With
End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…