Mise en forme VBA

Spinzi

XLDnaute Impliqué
Bonjour à tous,

j'essaie de monter un de mes tous premiers codes VBA qui va être l'amoncellement de plusieurs codes ... mais j'ai du mal à mettre en plaec le plus simple.

Pour l'instant, je voudrais supprimer les lignes 1 à 8 de mon fichier et les colonnes où il y a de la couleur. Malheureusement la macro que j'ai édité foire complètement, mais je ne sais pas où.

Merci de votre compassion :p
 

Pièces jointes

  • EXCEL-DL-TEST.xls
    25 KB · Affichages: 54

mintri

XLDnaute Occasionnel
Re : Mise en forme VBA

Hello,

Attention tu as des cases fusionnées en haut du tableau du coup la sélection récupère l'ensemble des colonnes sur lesquelles les cellules fusionnées s'étendent.

Hormis ce problème, le code suivant devrait mieux convenir :


Sub Macro1()

Rows("1:8").Select

Selection.Delete Shift:=xlUp

Range("C:C,F:O,Q:T").Select

Selection.Delete Shift:=xlToLeft

End Sub
 

Spinzi

XLDnaute Impliqué
Re : Mise en forme VBA

Merci !
Maintenant le problème que j'ai, c'est que je voudrais que ma fonction soit compilée avec une fonction qui défusionne :
Code:
Sub TCD()
Sub Defusionner()

    Cells.Select
    With Selection
        .HorizontalAlignment = xlGeneral
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
End Sub


    Rows("1:8").Select
    Selection.Delete Shift:=xlUp

    Range("C:C,F:O,Q:T").Select
    Selection.Delete Shift:=xlToLeft

End Sub

Mais evidemment, comme je ne sais pas me servir de VBA, j'ai une erreur ... :rolleyes:
 

Dull

XLDnaute Barbatruc
Re : Mise en forme VBA

Salut Spinzi, le Forum

avec ce que j'ai compris
les select sont souvent inutiles

Sub Macro1()
Application.ScreenUpdating = False
For i = 20 To 1 Step -1
If Cells(9, i).Interior.ColorIndex = 44 Then Columns(i).Delete Shift:=xlToLeft
Next i
Rows("1:8").Delete Shift:=xlUp
Application.ScreenUpdating = True
End Sub

EDITION: Oupsss.. Salut mintri

Bonne Journée
 

Pièces jointes

  • EXCEL-DL-TEST-1.xls
    30.5 KB · Affichages: 50
Dernière édition:

Spinzi

XLDnaute Impliqué
Re : Mise en forme VBA

Bonjour Dull !

Je me suis mal exprimé et ai amené un quiproquo : les cellules a entete colorée sont certes à supprimer mais sont surtout fixe, alors que la couleur c'est moi qui l'ai ajouté manuellement (cétait juste un repère).
Il s'agit donc bien d'effacer les colonnes C, de F à O et de Q à T ... tout en incluant le " défusionnage" ^^

Bonne journée à vous aussi !
 

mintri

XLDnaute Occasionnel
Re : Mise en forme VBA

Merci !
Maintenant le problème que j'ai, c'est que je voudrais que ma fonction soit compilée avec une fonction qui défusionne :
Code:
Sub TCD()
Sub Defusionner()

    Cells.Select
    With Selection
        .HorizontalAlignment = xlGeneral
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
End Sub


    Rows("1:8").Select
    Selection.Delete Shift:=xlUp

    Range("C:C,F:O,Q:T").Select
    Selection.Delete Shift:=xlToLeft

End Sub

Mais evidemment, comme je ne sais pas me servir de VBA, j'ai une erreur ... :rolleyes:

Tu dois retirer les lignes :
"Sub Defusionner()" et le premier "End Sub" :)

EDIT Dull : Hello ! On s'est croisé :)
 
Dernière édition:

Spinzi

XLDnaute Impliqué
Re : Mise en forme VBA

Ca fonctionne du tonerre, merci !
Après l'autre problème que j'ai, c'est que je vais insérer un code pour créer automatiquement un TCD, mais en dessus de mon extraction, j'ai des lignes à supprimer pour ne pas que ça pollue mon TCD.
Ce sont les 2 dernières lignes où il y a du texte.

J'aurai besoin de vous pour savoir si c'est faisable.

ps : voila mon code actuellement
Code:
Sub TCD()

    Cells.Select
        With Selection
            .HorizontalAlignment = xlGeneral
            .VerticalAlignment = xlBottom
            .WrapText = False
            .Orientation = 0
            .AddIndent = False
            .IndentLevel = 0
            .ShrinkToFit = False
            .ReadingOrder = xlContext
            .MergeCells = False
        End With

    Rows("1:8").Select
    Selection.Delete Shift:=xlUp

    Range("C:C,F:O,Q:T").Select
    Selection.Delete Shift:=xlToLeft

End Sub
 

Spinzi

XLDnaute Impliqué
Re : Mise en forme VBA

C'est exactement ça ! C'est une espèce de synthèse qui vient s'incrémenter.

Et comme le nombre de lignes extrait est aléatoire, la place de la synthèse l'est tout autant MAIS, on peut dire que si après les lignes qu'il y aura de la ligne 2 à la ligne 20 par exemple, il y a un espace, alors on peut supprimer les lignes qu'il y a après ou tout du moins les effacer, et cela dans toutes les colonnes !
 

mintri

XLDnaute Occasionnel
Re : Mise en forme VBA

Tu peux insérer ceci à la suite de ton code :

Dim last As Integer

last = Range("A65536").End(xlUp).Row

Rows(last - 1).ClearContents
Rows(last).ClearContents

Ca va chercher la dernière ligne et supprimer la dernière et l'avant-dernière :)
 

Spinzi

XLDnaute Impliqué
Re : Mise en forme VBA

re-Bonjour

me revoila puisque j'ai tenté des choses ... qui ne fonctionnent pas !
Donc en fait j'ai trouvé un code pour générer un TCD qui s'adapte automatiquement à la plage de données (permet de rajouter des lignes, d'en supprimer, etc.) mais dans mon cas il n'apparait pas !

Si vous pouviez regarder ce qui cloche ...

ps : bouton macro en haut à droite de la feuille
 

Pièces jointes

  • EXCEL-DL-TEST2.xls
    30 KB · Affichages: 50

Spinzi

XLDnaute Impliqué
Re : Mise en forme VBA

ps : je me permets une petite apparté mais je n'ai pas trouvé sur internet : je cherche une fonction pour changer le libellé d'une colonne : par exemple changé le "N° de piece" de mon extraction en "Numéro de facture" après avoir appliqué la macro. Et imaginons que ce libellé et en B2 =)

Merci


edit : j'ai vu que mon code comporté une erreur : la module que m'a dit de rajouter Mintri me supprimait les libellés ! je l'ai donc supprimer puisque de toute manière, le fait d'effacer certaines colonne supprime aussi le tableau de synthèse aussi. Mais toujours ce pb de non génération du TCD ...
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
176
Réponses
12
Affichages
226

Statistiques des forums

Discussions
312 294
Messages
2 086 911
Membres
103 404
dernier inscrit
sultan87