Comment placez-vous un objet zone de texte sur une cellule spécifique lors de l'automatisation d'Excel?

StackOverflow https://stackoverflow.com/questions/66934

  •  09-06-2019
  •  | 
  •  

Question

Nous automatisons Excel avec VB.Net et essayons de placer plusieurs lignes de texte sur une feuille de calcul Excel que nous ne pouvons pas imprimer. Entre ceux-ci, nous aurions des rapports imprimables. Nous pouvons le faire si nous ajoutons des objets de zone de texte et définissons le paramètre d'objet d'impression sur false. (Si vous avez un autre moyen, dirigez-moi s'il vous plaît)

Le code pour ajouter une zone de texte est:

ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 145.5, 227.25, 304.5, 21#)

mais le positionnement est en points. Nous avons besoin d'un moyen de le placer sur une cellule spécifique et de le dimensionner avec la cellule. Comment pouvons-nous savoir où le mettre quand nous savons juste quelle cellule pour le mettre?

Était-ce utile?

La solution

Si vous avez le nom ou la position de la cellule, vous pouvez faire:

With ActiveSheet
  .Shapes.AddTextbox msoTextOrientationHorizontal, .Cells(3,2).Left, .Cells(3,2).Top, .Cells(3,2).Width, .Cells(3,2).Height
End With

Ceci ajoutera une zone de texte sur la cellule B3. Lorsque B3 est redimensionné, la zone de texte l'est également.

Autres conseils

Lorsque vous copiez & amp; coller une zone de texte, Excel place la nouvelle zone de texte sur la cellule actuellement sélectionnée. Vous pouvez donc y parvenir très facilement en utilisant simplement VBA copy & amp; coller des commandes. Cela peut être particulièrement utile si vous allez utiliser beaucoup de zones de texte très similaires, car vous créez effectivement un modèle de zone de texte.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top