Aide sur Macro Excel

vinsou82 Messages postés 9 Date d'inscription mercredi 5 septembre 2007 Statut Membre Dernière intervention 25 septembre 2009 - 5 sept. 2007 à 21:11
vinsou82 Messages postés 9 Date d'inscription mercredi 5 septembre 2007 Statut Membre Dernière intervention 25 septembre 2009 - 14 sept. 2007 à 20:31
Bonjour à tous!

Ceci est mon premier poste et pour cause: je n'ai jamais touché à du VBA, mais là je me retouve le nez dedans malgrés moi et sans aucune connaissance!

Je suis très embêté avec une macro sur un fichier Excel, dans laquelle je souhaite enregistrer les manipulations, consistant à copier/coller les valeur (nombres) d'une série de cellules dans une grille, et les utiliser pour paramétrer la largeur des colonnes dans lesquelles ces valeurs se trouvent.

En d'autres termes, je souhaite que la largeur des colonnes de ma grille Excel soient fonction de la valeur qui se trouve dansles cellules d'une ligne renseignée à cet effet.

Exemple : 4 dans la cellule C3 et bien je copie cette valeur, clic droit sur la colonne C, largeur de la colonne, et je colle la valeur.
et je répète cette manip pour chaque colonne.

Le problème, c'est que lorsque la macro s'enregistre, elle conserve la valeur prise à l'enregistrement, elle ne reste pas "active", car ces valeur sont amenées à changer selon les datas de mes calculs.

Donc je souhaite modifier la macro enregistrée, pour que celle ci soit "dynamique".

Voilà j'espère avoir été clair et conci.

Peut être qu'un autre moyen existe plus simple, je suis interessé bien sûre.

Merci d'avance pour votre aide!

5 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
6 sept. 2007 à 00:54
Il y a une fonction Autofit qui pourrait servir à ajuster tes colonnes comme si tu double-cliquais entre 2

Il y a aussi ColumnWidth qui pourrait être utilisé

Si tu nous montrais le code généré, on pourrait plus facilement t'aiguiller.

En passant, il y a un forum dédié expressément à VBA (Excel, Access,...). Il est en bas de la liste des forums, là où peu de gens se rendent ...

MPi
0
vinsou82 Messages postés 9 Date d'inscription mercredi 5 septembre 2007 Statut Membre Dernière intervention 25 septembre 2009
6 sept. 2007 à 13:57
Désolé pour le mauvais choix du forum, puissequ'on y est je propose de continuer ici.

Merci pour ta réponse, je vais essayer ce soir, mais je ne pense pas que la première proposition soit adaptée, je connait le double clique entre les deux colonnes pour adapter la largeur à la taille du contenu, mais ça n'est pas ce que je recherche puisseque par exemple la valeur 68 ne donnerai surement pas une largeur de 68 à ma colonne.
 
Ce que je recherche est sensinlement différent, et n'est à priori pas possible via les forumles de Excel, je vais dc me pencher sur la deuxieme pour voir ce soir.

merci encore
0
vinsou82 Messages postés 9 Date d'inscription mercredi 5 septembre 2007 Statut Membre Dernière intervention 25 septembre 2009
6 sept. 2007 à 18:47
Voilà le code source enregistré lors de la macro:

Sub essai1()
'
' essai1 Macro
' Macro enregistrée le 06/09/2007 par Vincent BERNARD
'
' Touche de raccourci du clavier: Ctrl+a
'
    Range("B6").Select
    Selection.Copy
    Columns("B:B").Select
    Selection.ColumnWidth = 1
    Range("C6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Columns("C:C").Select
    Selection.ColumnWidth = 2
    Range("D6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Columns("D:D").Select
    Selection.ColumnWidth = 3
    Range("E6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Columns("E:E").Select
    Selection.ColumnWidth = 4
    Range("F7").Select
    Application.CutCopyMode = False
End Sub
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
7 sept. 2007 à 11:40
Inscris des valeurs en A1 jusqu'à E1 (ex: 10, 15, 20...)
et essaie ce bout de code

    Dim I As Integer
   
    For I = 1 To 5
        Columns(I).ColumnWidth = Cells(1, I)
    Next

Si tu cliques entre 2 colonnes et que tu tiens le bouton pressé, c'est le chiffre de gauche qui sera utilisé dans ce cas-ci (mesure par rapport à la police). Si c'est une largeur en Pixels que tu veux inscrire, il te faudra alors créer une formule de calculs pour convertir et ce n'est pas simple ...

MPi
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vinsou82 Messages postés 9 Date d'inscription mercredi 5 septembre 2007 Statut Membre Dernière intervention 25 septembre 2009
14 sept. 2007 à 20:31
Pardon pour le retard de réponse

J'ai depuis trouvé une parade, à mon problème, en faite il fallait que je remplace les valeur enregistrées dans la macro, par la dénomination en code vba de la cellule en question soit: Range("B6") voilà et marche super!

Mais je vais tout de même essayer ta solution car ça commence à m'interesser la prog sous VBA pour me faire des macro, ça me permet de me créer des petites moulinettes simpa pour le boulot évitant l'achat, de gros software bien connu et surtout bien cher... pour faire ce dont j'ai besoin, et peut être même aussi bien...
0
Rejoignez-nous