Microsoft 365 VBA centrer la valeur de la cellule

Scorpio

XLDnaute Impliqué
Bonjour à tous,
Je vous rassure de suite, je suis pas le créateur de ce code.
J'ai un très très gros fichier, et je n'arriverais pas à le joindre sur le Forum pour que vous le visualiser.
J'ai donc un bouton dans ce formulaire qui contient une listbox.
Voici le code qui vas transférer sur une autre feuille une ligne sélectionnée.
La dernière ligne de ce code, ou j'ai saisi XXXX, compte le NB de lignes, et,
J'aimerais y ajouter lors du transfert; centrer la valeur de la cellule NB de ligne, détail, cette cellule NB de lignes, n'est pas toujours la même, car la base de donnée grandis.
Merci pour votre aide, et à ++++



Private Sub B_recup_Click()
Application.ScreenUpdating = False
Set f = Sheets("Tableau") 'dans la feuille"Tableau"
f.[A2:F1000].ClearContents
n = ListBox1.ListCount
Tbl = Me.ListBox1.List
f.[A2].Resize(n) = Application.Index(Tbl, , 1) 'Société
f.[B2].Resize(n) = Application.Index(Tbl, , 2) 'Code
f.[C2].Resize(n) = Application.Index(Tbl, , 3) 'Somme
f.[D2].Resize(n) = Application.Index(Tbl, , 4) 'Facture N°
f.[E2].Resize(n) = Application.Index(Tbl, , 5) 'Date du payement
f.[F2].Resize(n) = Application.Index(Tbl, , 6) 'Echéance le:
'Somme colonne "C"
f.[C65000].End(xlUp).Offset(2) = Application.Sum(Application.Index(Tbl, , 3)) 'Somme colonne "C"
'NB ligne colonne "A"
f.[A65000].End(xlUp).Offset(2) = Application.CountA(Application.Index(Tbl, , 1)) 'NB de ligne colonne "A" XXXX
End Sub
 

fanch55

XLDnaute Barbatruc
Bonjour,
La méthode à utiliser est typiquement celle des tableaux structurés avec une ligne total.
C'est dommage que vous ne puissiez pas envoyer votre fichier.

N'avez-vous pas un Cloud quelconque ( OneDrive, GoogleDrive ,CloudOrange ) où vous pourriez déposer le fichier et nous en donner le lien partageable ?

Ou sinon, pouvez-vous joindre un exemplaire "édulcoré" de votre fichier en supprimant ce qui ne vous semble pas importants ou des données limitées .

Ou si vous ne désirez vraiment que centrer les totaux :

VB:
'Somme colonne "C"
    With f.[C65000].End(xlUp).Offset(2)
        .Value = Application.Sum(Application.Index(Tbl, , 3))
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
    End With

'NB ligne colonne "A"
    With f.[A65000].End(xlUp).Offset(2)
        .Value = Application.CountA(Application.Index(Tbl, , 1))
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
    End With
 

Scorpio

XLDnaute Impliqué
Bonjour fanch55,
C'est bien gentil a vous de me conseiller si vite, et je vous en remercie.
C'est vrais le fichier est énorme, mais en fait, je désire uniquement centrer la cellule qui me donne le NB de ligne, et qui est pas fixe en fonction de la longueur de la Base de donnée.
Je vais essayé votre proposition, et je vous donnerais des nouvelles plus tard. Je vous remercie fanch55, a +++
 

Scorpio

XLDnaute Impliqué
Re bonjour fanch55,
Et bien c'est super, cela fonctionne et je vous en remercie.
Il y aurais juste une petite chose,
Lorsque je transfert par ex, 5 lignes, la ligne ou ce trouve le centrage de NB de ligne et bien centré, OK.
Mais par la suite si je transfert 15 ou 20 lignes, la ligne de NB de ligne précédente reste centré, et tombe sur une ligne qui ne devrais pas être centrée, donc, il faudrait a mon avis effacer dans votre code le centrage précédent.
Je vous remercie beaucoup fanch55, a++++++++

'NB ligne colonne "A"
With f.[A65000].End(xlUp).Offset(2)
.Value = Application.CountA(Application.Index(Tbl, , 1))
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
 

fanch55

XLDnaute Barbatruc
Pour annuler le centrage précédent :
VB:
'NB ligne colonne "A"
    f.Columns("A:A").HorizontalAlignment = xlLeft    ' ou   f.Columns(1).HorizontalAlignment = xlLeft
    With f.[A65000].End(xlUp).Offset(2)
        .Value = Application.CountA(Application.Index(Tbl, , 1))
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
    End With
 

Scorpio

XLDnaute Impliqué
Re bonjour Fanch55
C'est super, tous qui vas, vraiment un grand merci à vous, et pour le classeur exemple, c'est ce genre là, mais avec un userform qui ma fois fonctionne aussi très bien.
Mais c'est parfais, merci beaucoup.
Si, car mon fichier et gros, j'arrive faire un exemple beaucoup plus petit que ce que j'utilise, je le mettrais dans le forum, promis.
A bientôt franch55, et merci beaucoup
 

Discussions similaires

Statistiques des forums

Discussions
314 629
Messages
2 111 345
Membres
111 110
dernier inscrit
chergui