Simplification attributs cellule/colonne sur une ligne
Résolu/Fermé
dhaze
Messages postés
109
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
6 février 2020
-
Modifié par dhaze le 11/03/2015 à 14:29
dhaze Messages postés 109 Date d'inscription mardi 27 septembre 2011 Statut Membre Dernière intervention 6 février 2020 - 9 avril 2015 à 18:39
dhaze Messages postés 109 Date d'inscription mardi 27 septembre 2011 Statut Membre Dernière intervention 6 février 2020 - 9 avril 2015 à 18:39
A voir également:
- Simplification attributs cellule/colonne sur une ligne
- Aller à la ligne dans une cellule excel - Guide
- Déplacer une colonne excel - Guide
- Apparaitre hors ligne instagram - Guide
- Vente en ligne particulier - Guide
- Colonne word - Guide
5 réponses
redaiwa
Messages postés
351
Date d'inscription
mardi 7 octobre 2008
Statut
Membre
Dernière intervention
25 janvier 2024
119
11 mars 2015 à 15:24
11 mars 2015 à 15:24
Salam dhaze.
Personnellement, j'opterais pour ce code :
Le code affecte d'abord les valeurs aux cellules puis, en une seule fois, fixe à 90 l'orientation de la ligne 1 et applique la fonction Autofit.
NB : les "Value" et "Select" sont inutiles, ils ne sont générés que lors de l'enregistrement automatique des macros.
Est-ce bien cela que tu voulais ?
:)
Personnellement, j'opterais pour ce code :
Range("A1") = "[DOC1]"
Range("B1") = "[DOC2]"
Range("C1") = "[DOC3]"
Range("D1") = "[DOC4]"
Range("E1") = "[DOC5]"
Rows(1).Orientation = 90
Cells.EntireColumn.AutoFit
Le code affecte d'abord les valeurs aux cellules puis, en une seule fois, fixe à 90 l'orientation de la ligne 1 et applique la fonction Autofit.
NB : les "Value" et "Select" sont inutiles, ils ne sont générés que lors de l'enregistrement automatique des macros.
Est-ce bien cela que tu voulais ?
:)
dhaze
Messages postés
109
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
6 février 2020
Modifié par dhaze le 11/03/2015 à 16:48
Modifié par dhaze le 11/03/2015 à 16:48
Merci pour cette réponse.
Mais c'est pas exactement ça.
Mon problème, c'est que le ou les attributs ".format de cellule"
sont différents dans chaque colonne.
Cela peut être l'orientation, la largeur(fixe ou auto), etc...
En moyenne, j'ai une soixantaine de colonnes par feuille...
Toutes avec des attributs différents !
Surtout des largeurs, et parfois une orientation à 90° quand il y a des accolades (ce qui pourrait être géré en fin de macro par un .Find("[") ).
Je pense que la difficulté c'est qu'il y ait, à la fois des attributs liés à la première cellule, puis à la colonne entière...
Lo.
Mais c'est pas exactement ça.
Mon problème, c'est que le ou les attributs ".format de cellule"
sont différents dans chaque colonne.
Cela peut être l'orientation, la largeur(fixe ou auto), etc...
Cells(1,7) = "[DOC]" + .Orientation = 90 + .EntireColumn.AutoFit Cells(1,8) = "Titre" + .ColumnWidth = 50 + .EntireColumn.WrapText Cells(1,9) = "Auteur" + .ColumnWidth = 30 Cells(1,10) = "Fond" + .ColumnWidth = 20 Ne pas se fier à la "grammaire" de ce code qui est bien sûre fausse !
En moyenne, j'ai une soixantaine de colonnes par feuille...
Toutes avec des attributs différents !
Surtout des largeurs, et parfois une orientation à 90° quand il y a des accolades (ce qui pourrait être géré en fin de macro par un .Find("[") ).
Je pense que la difficulté c'est qu'il y ait, à la fois des attributs liés à la première cellule, puis à la colonne entière...
Lo.
via55
Messages postés
14394
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
26 mars 2024
2 698
12 mars 2015 à 00:42
12 mars 2015 à 00:42
Bonsoir Dhaze
Et pourquoi ne pas préparer dans un tableau les différents attributs par colonne et faire ensuite par macro lire le tableau affecter les attributs sur une autre feuille ?
Exemple :
https://www.cjoint.com/?0CmaZeh0KTA
Cdlmnt
Et pourquoi ne pas préparer dans un tableau les différents attributs par colonne et faire ensuite par macro lire le tableau affecter les attributs sur une autre feuille ?
Exemple :
https://www.cjoint.com/?0CmaZeh0KTA
Cdlmnt
dhaze
Messages postés
109
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
6 février 2020
7 avril 2015 à 19:11
7 avril 2015 à 19:11
Merci !
Pas mal ta solution, je la garde au chaud ;-)
Mais pour des raisons de sécurité tout doit se trouver dans des macros verrouillées. Le reste du tableau étant "libre"...
J'ai bien pensé à xlSheetVeryHidden, mais je voudrais bien trouver une solution uniquement par macro.
Beau boulot, merci encore.
Lo.
Pas mal ta solution, je la garde au chaud ;-)
Mais pour des raisons de sécurité tout doit se trouver dans des macros verrouillées. Le reste du tableau étant "libre"...
J'ai bien pensé à xlSheetVeryHidden, mais je voudrais bien trouver une solution uniquement par macro.
Beau boulot, merci encore.
Lo.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
dhaze
Messages postés
109
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
6 février 2020
9 avril 2015 à 09:08
9 avril 2015 à 09:08
Bonjour via55,
Après avoir fait quelques essais,
je crois que ton approche est bien la bonne ;-)
Je vais mettre toutes mes en-têtes et leurs formats dans
une feuille xlSheetVeryHidden.
Comme CJoint a fait le ménage, je me permets de mettre
ta macro en clair pour ceux que cela pourrait aider.
Merci
Lo.
Après avoir fait quelques essais,
je crois que ton approche est bien la bonne ;-)
Je vais mettre toutes mes en-têtes et leurs formats dans
une feuille xlSheetVeryHidden.
Comme CJoint a fait le ménage, je me permets de mettre
ta macro en clair pour ceux que cela pourrait aider.
+---+-----------------+-------+--------+--------+-------+
| | A | B | C | D | E |
+---+-----------------+-------+--------+--------+-------+
| 1 | N° colonne | 7 | 8 | 9 | 10 |
+---+-----------------+-------+--------+--------+-------+
| 2 | ligne 1 | [DOC] | Titre | Auteur | Fond |
+---+-----------------+-------+--------+--------+-------+
| 3 | orientation | 90 | 0 | 0 | 0 |
+---+-----------------+-------+--------+--------+-------+
| 4 | largeur | | 50 | 30 | 20 |
+---+-----------------+-------+--------+--------+-------+
| 5 | Colonne entiere | A | W | | |
+---+-----------------+-------+--------+--------+-------+
Sub mise_en_page() dercol = Sheets(1).Cells(1, Cells.Columns.Count).End(xlToLeft).Column For n = 2 To dercol With Sheets(1) colonne = .Cells(1, n) titre = .Cells(2, n) orient = .Cells(3, n) largeur = .Cells(4, n) entiere = .Cells(5, n) End With With Sheets(2) .Cells(1, colonne) = titre If orient > 0 Then .Cells(1, colonne).Orientation = orient If largeur > 0 Then .Cells(1, colonne).ColumnWidth = largeur If entiere = "A" Then .Cells(1, colonne).EntireColumn.AutoFit If entiere = "W" Then .Cells(1, colonne).EntireColumn.WrapText = True End With Next End Sub
Merci
Lo.
dhaze
Messages postés
109
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
6 février 2020
9 avril 2015 à 18:39
9 avril 2015 à 18:39
Juste pour info...
Ça fonctionne parfaitement.
Lo.
'En début de macro, je commence par: Worksheets("Feuille_source").Visible = xlSheetVisible Sheets("Feuille_source").Select 'Et fini par : Worksheets("Feuille_source").Visible = xlSheetVeryHidden
Ça fonctionne parfaitement.
Lo.