Taille d'une TextBox [Résolu]

aaliyan 104 Messages postés samedi 12 mars 2005Date d'inscription 30 avril 2007 Dernière intervention - 12 mars 2007 à 14:32 - Dernière réponse : aaliyan 104 Messages postés samedi 12 mars 2005Date d'inscription 30 avril 2007 Dernière intervention
- 12 mars 2007 à 15:25
Bonjour à tous,
J'ai un petit souci avec Visual Basic et leur unité de mesure, en effet je cherche à généré des Bloc de Textes dans une feuille excel de la taille des cellules, un petit dessins pour comprendre
http://images.imagehotel.net/?cd09577770.jpg
J'ai fais une macro pour pouvoir initialiser la taille des cellules et la mettre dans une variable.

Sub LargeurCL()
    'Macro pour l'initialisation de la largeur des colonnes et des lignes'
    Dim Lc As Integer
    Dim Ll As Integer
    Set p = Sheets("Param")
   
    Lc = p.Cells(17, 4)
    Ll = p.Cells(18, 4)
   
    Sheets("EDT").Select
    Rows("3:100").RowHeight = Lc
    Columns("A:AZ").ColumnWidth = Ll
End Sub

Mais je n'arrive pas à créer des blocs de texte de la meme taille des cellules:

ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 75, (15.5 + 9 * i), _ "<- Taille des textBox"
                  2 * 67.5, 4 * 12.75 / l).Select   "<- Taille des textBox"
                Selection.Characters.Text = q.Cells(i, 4) & Chr(10) & q.Cells(i, 17)
                With Selection.Characters(Start:=1, Length:=40).Font
                    .Name = pcm     'Police TextBox'
                    .FontStyle = "Normal"
                    .Size = tpcm    'Taille de la police'
                    .Strikethrough = False
                    .Superscript = False
                    .Subscript = False
                    .OutlineFont = False
                    .Shadow = False
                    .Underline = xlUnderlineStyleNone
                    .ColorIndex = 0
                End With
                Selection.ShapeRange.Fill.ForeColor.SchemeColor = k
                Selection.HorizontalAlignment = xlCenter

Je pense que le problème vient d'une conversion pixel / centimetre ou d'un truc comme ca.
Merci d'avance
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
aaliyan 104 Messages postés samedi 12 mars 2005Date d'inscription 30 avril 2007 Dernière intervention - 12 mars 2007 à 15:25
3
Merci
Ca marche niquel ton code [auteurdetail.aspx?ID=89254 jrivet]mais j'ai du le modifié un peu et ca donne ca :

ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 75, (15.5 + 9 * i), _
                  6 * Range("B10").Width, 4 * Range("B10").Height).Select

Cela génere exactement un bloc de texte de la taille d'une cellule !!! terrible
Merci beaucoup à tout le monde pour votre disponibilité

Merci aaliyan 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de aaliyan
drikce06 2247 Messages postés lundi 29 mai 2006Date d'inscription 29 mai 2008 Dernière intervention - 12 mars 2007 à 14:40
0
Merci
Salut, pour une cellule excel de hauteur 12.75 cela correspond à une hauteur de 17 pixels et une largeur 10.71 à 80 pixels, si cela peut t'aider!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
Commenter la réponse de drikce06
aaliyan 104 Messages postés samedi 12 mars 2005Date d'inscription 30 avril 2007 Dernière intervention - 12 mars 2007 à 14:58
0
Merci
Merci de ta réponse [auteurdetail.aspx?ID=786090 Drikce06] mais il n'y a pas un truc plus simple car ca m'oblige à
faire des calculs et donc d'alourdir l'algo
Commenter la réponse de aaliyan
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 12 mars 2007 à 15:02
0
Merci
Salut,
J'ai testé ceci

ceci ajoute un textbox dont la hauteur est égale à trois fois la hauteur de la cellule B10 et dont la longueur est égale à trois fois la longueur de B10
Comme au préalable tu met toutes les cellules à la meme taille ce code devrait peu être t'aider.

Call Shapes.AddTextbox(msoTextOrientationHorizontal, Range("B10").Left, Range("B10").Top, 3 * Range("B10").Width, 3 * Range("B10").Height)
@+: Ju£i?n
Pensez: Réponse acceptée
Commenter la réponse de jrivet

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.