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

XL 2013 Code VBA pour format de colonne et insertion formules sur une plage définie automatiquement

Vincent31140

XLDnaute Nouveau
Bonjour,
Je vous remercie du temps que vous me consacrerez pour me proposer une solution qui me permettra que la macro VBA puisse m'affecter un format sur une colonne de la ligne 10 à la dernière ligne qui devra être calculer automatiquement.

De plus, je souhaiterez, que VBA m'insérer une formule dans une plage de colonne de la ligne 10 à la dernière ligne qui sera calculer automatiquement, mais uniquement si en colonne 2, il y a le caractère "Matiere"

Pour être le plus clair possible, j'ai ajouté une ligne 55 à laquelle j'ai ajouté le format pour chacune colonne et la formule a intégrer.

Merci beaucoup pour votre aide.
 

Pièces jointes

  • Modele pour excel upload.xlsx
    21.9 KB · Affichages: 16
Solution
Le tableau structuré est une fonctionnalité d'excel qui automatise certaines tâches lors d'un ajout de lignes, tel que recopie des formats, recopie des formules, ainsi l'utilisateur n'a plus à se soucier de répéter ces actions, et évite par la même occasion toutes erreurs de saisie.

Pour convertir un tableau classique en tableau structuré, voici la procédure en image


Pour les personnes qui sont amenées à le recréer, il leur suffira de supprimer toutes les lignes sauf la ligne 10 (sur cette ligne, l'utilisateur se contentera de modifier les valeurs) qui contient les formules et les formats, et au fur et à mesure qu'ils ajouteront des lignes ou des colonnes supplémentaires, le tableau s'adaptera...

Rouge

XLDnaute Impliqué
Bonjour,

Pour les formats personnalisés, il faut dans un premier temps, pour les valeurs, remplacer le point par une virgule, puis appliquer le format personnalisé.
Ensuite, pour que les formules de se recopient automatiquement, nul besoin de VBA, il suffit de convertir le tableau en tableau structuré, ainsi les formules et les formats seront recopiés automatiquement à chaque nouvelles saisies.

Voici le résultat après conversion en tableau structuré:


Cdlt
 

Pièces jointes

  • Vincent31140_Code VBA pour format de colonne et insertion formules sur une plage définie auto...xlsx
    23.1 KB · Affichages: 3

Vincent31140

XLDnaute Nouveau
Bonjour Rouge,
Merci pour ton retour, mais je souhaiterais le faire via une macro car le tableau final est très complexe et devra être recréer régulièrement par diverses personnes, qui n'ont pas de grandes connaissances en excel.
De plus, cest quoi un panneau structuré

Bonne journée
 

Rouge

XLDnaute Impliqué
Le tableau structuré est une fonctionnalité d'excel qui automatise certaines tâches lors d'un ajout de lignes, tel que recopie des formats, recopie des formules, ainsi l'utilisateur n'a plus à se soucier de répéter ces actions, et évite par la même occasion toutes erreurs de saisie.

Pour convertir un tableau classique en tableau structuré, voici la procédure en image


Pour les personnes qui sont amenées à le recréer, il leur suffira de supprimer toutes les lignes sauf la ligne 10 (sur cette ligne, l'utilisateur se contentera de modifier les valeurs) qui contient les formules et les formats, et au fur et à mesure qu'ils ajouteront des lignes ou des colonnes supplémentaires, le tableau s'adaptera automatiquement et tout sera recopié, formules et formats, les tableaux structurés c'est fait pour cela et on évite ainsi des lignes de code VBA qui pourrait présenter des dysfonctionnement si quelqu'un venait à en modifier la structure, c'est aussi fait pour les personnes qui ne connaissent pas le VBA.

A noter que l'on peut revenir à un tableau "normal", en cliquant sur le tableau et en faisant ceci:




Essayez de travailler sur ce genre de tableau, vous n'y trouverez que des avantages.

Je remets le fichier car j'avais écrasé la formule en colonne J
 

Pièces jointes

  • Vincent31140_Code VBA pour format de colonne et insertion formules sur une plage définie auto...xlsx
    23.9 KB · Affichages: 5
Dernière édition:

Vincent31140

XLDnaute Nouveau
Bonjour Rouge,
effectivement ca à l'air d'être une bonne solution.
Cependant, avant de lancer la macro de création tableau structuré, je lance une macro qui me créer une compilation d'opérations pour me créer mon tableur (nombre de lignes de mon tableur peut varier d'une source à l'autre).

De ce fait, lorsque je lance la macro création tableau structuré, je n'arrive pas lui dire de faire le tableau structuré jusqu'à la dernière ligne où se trouve du texte (avec code ci_dessous jusquà ligne 50).
Comment faire?

Merci pour ton aide

Voici le code:
Sub Creation_Tableaux_Structures()
' Creation tableaux structurés de colonne A à Y DE LA LIGNE 9 à derniére ligne contenant du texte

Range("B9:Y54").Select
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$B$9:$Y$50"), , xlYes).Name = _
"Enginering_Datas"
Range("Enginering_Datas[#All]").Select
ActiveSheet.ListObjects("Enginering_Datas").TableStyle = "TableStyleMedium9"

ActiveSheet.ListObjects("Enginering_Datas").ShowTotals = True 'Ajout Ligne TOTAUX



ActiveWindow.SmallScroll ToRight:=8 'Ajout Formule
Range("N10").Select
ActiveCell.FormulaR1C1 = _
"=IF(C5=""MATERIAL"",[@LENGTH]/100*[@WIDTH]/100*[@THICKNESS]/100*2.8,"""")"

End Sub
 

Rouge

XLDnaute Impliqué
Bonjour,

Dans votre formule, on cherche les colonnes dont les entêtes sont la longueur, la largeur et l'épaisseur or, il serait judicieux dans un premier temps de nommer ces colonnes avant de vouloir appliquer la formule.

Cdlt
 

Vincent31140

XLDnaute Nouveau
Bonjour,
J'ai réussi à créer le code pour les tableaux structurés mais je galère pour le code pour intégrer une formule de la forme, si "MATERIAL" alors je fais recherche v.
Le code suivant ne fonctionne pas, pourquoi:

Sub Ajout formule ()

ActiveWindow.SmallScroll ToRight:=8
Range("N10").Select
ActiveCell.FormulaR1C1 =
"=IF([@TYPE]=""MATERIAL"",[@LENGTH]/100*[@WIDTH]/100*[@THICKNESS]/100*VLookup([@[CURRENT_ELEMENT]];t_Referential;23;FALSE),"""")"

End sub

Merci beaucoup !
 

Rouge

XLDnaute Impliqué
Bonjour,

Je ne vois pas le nom du tableau dans la formule et il y a des points-virgules à la place des virgules.

Les formules dans les tableaux structurés ne sont pas toujours simples à déchiffrer, pour détecter plus facilement les anomalies, faites ceci:
Convertissez le tableau structuré en plage,
-clic sur le tableau,
-clic sur "Outils du tableau" tout en haut de l'écran
-dans l'onglet "Outils", sélectionnez "Convertir en plage"
-écrivez votre formule
-convertissez le tableau en tableau structuré

Cdlt
 

Vincent31140

XLDnaute Nouveau
En fait, via la macro je n'y arrive pas?

Par contre, la formule tapé directement en ligne 1 du tableau structuré de la feuille excel se propage et fonctionne bien:
Formule dans tableau structuré de la feuille excel, qui fonctionne:
=SI([@TYPE]="MATERIAL";[@LENGTH]/100*[@WIDTH]/100*[@THICKNESS]/100*RECHERCHEV([@[CURRENT_ELEMENT]];t_Referential;23;FAUX);"")

Comment je dois coder cette formule pour que vba me l'insère directement en ligne 1 (=ligne 10, colonne N) de mon tableau structuré?
Merci
 

Discussions similaires

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