Aide sur Macro Excel

Signaler
Messages postés
9
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
25 septembre 2009
-
Messages postés
9
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
25 septembre 2009
-
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

Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
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
Messages postés
9
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
25 septembre 2009

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
Messages postés
9
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
25 septembre 2009

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
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
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
Messages postés
9
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
25 septembre 2009

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...