Microsoft 365 VBA centrer la valeur de la cellule

  • Initiateur de la discussion Initiateur de la discussion Scorpio
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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 +++
 
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
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
509
Réponses
3
Affichages
449
Réponses
4
Affichages
457
Réponses
3
Affichages
569
Réponses
6
Affichages
467
Retour