Bonjour à vous et encore merci à tous ceux aui m'ont déjà aidé sur ce site.
On me demande après une exportation de access vers Excel, de modifier par macro la forme du tableau.
Comme premier point demandé est de créer une ligne avant le titre des colonnes exportes, de modifier la taille du font et la police et de faire une fusion des colonnes.
Ce code fonctionne très bien sauf sur un point. Comme je fais un export à partir d'une requête access, je n'affiche les colonnes qui m'intéresse mais tout dépend de la requête où il y a plus ou moins de colonnes à afficher.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Sub fusion() Range("A1").Select Selection.EntireRow.Insert Range("A1:E1").Select With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False .FormulaR1C1 = "FACTURE DU " .Font.Name = "Tahoma" .Font.Size = 12 End With Selection.Merge End Sub
Le problème est le suivant : je voudrais faire une fusion de colonne de A1 jusqu'à la fin des colonnes exportées.
Exemple
fichier1 = fusion de A1 à A18 car ligne 2 va jusqu'a ligne 18
fichier2 = fusion de A1 à AA5 car ligne 2 va jusqu'a ligne AA5
Chaque export n'envoyant pas la même nombre de colonne et ceci sur une vingtaine d'export à effectuer.
Je pense que le code à remplacer est dans le range mais je ne sais pas comment l'écrire.
Sinon, j'ai aussi une demande où on supprime les colonnes qui sont vides.
J'ai le code pour enlever des colonnes vides, mais lors de l'export, il récupère le titre de la colonne, la colonne devient donc remplis, mais celle-ci doit être supprimé à partir par exemple de la ligne 3 (ligne 1 = la ligne que je crée pour le titre, ligne 2, le nom de la colonne sous Access)
et puis faudrait que la recherche s'arrête à la fin des lignes remplies et pas comme dans mon code qui parcourt tout le classeur !!!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Sub sup_col_vides() Dim c For c = 256 To 1 Step -1 If Cells(65536, c).End(xlUp).Row = 1 Then Cells(1, c).EntireColumn.Delete Next c End sub
j'espère avoir été assez claire.
Merci à vous !!
Partager