Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Ajuster un objet dans une case

  • Initiateur de la discussion ATCHOUM25
  • Date de début
A

ATCHOUM25

Guest
Bonjour à tous.

J'expose le problème :

J'ai une tablette à digitaliser qui permet, via le logiciel joint avec, de réaliser des signatures pouvant être incluses dans un document word ou excel. (tablette VOLITO de WACOM)

Je souhaiterai que la signature (qui devient un objet dans excel) s'adapte automatiquement à la dimension de la case que j'ai cochée au préalable.

En résumé : je coche la case G4 par exemple et je lance le logiciel de signature, il faut que la signature (soit réduite, soit agrandie) puisse être incluse en totalité dans la case cochée G4.
N.B. : Il est possible de redimensionner de façon manuelle l'objet grace aux poignées habituelles aux 4 coins et milieu.

Encore merci pour votre aide
 
R

Robert

Guest
Salut Atchoum25, salut le forum,

Si ta signature est le seul objet importé dans ta feuille, clique dans la cellule dans laquelle tu veux la signature et exécute la macro ci-dessous

Sub taille()
Dim larg As Single
Dim haut As Single
Dim topcel As Single
Dim leftcel As Single
larg = ActiveCell.Width
haut = ActiveCell.Height
topcel = ActiveCell.top
leftcel = ActiveCell.Left
Debug.Print topcel, leftcel
ActiveSheet.OLEObjects(1).Select 'à condition que la signature soit le seul objet importé
With Selection
.Width = larg
.Height = haut
.top = topcel
.Left = leftcel
End With
End Sub

À plus,

Robert
 
A

ATCHOUM25

Guest
Bonsoir Robert,

Encore merci pour l'assistance appportée, c'est ce que je recherche.
Après un test rapide , j'assure que cela fonctionne trés bien avec une signature unique.

Toutefois un HIC est encore présent.

Je vais avoir plusieurs signatures dans le même document.
En effet, je souhaiterai me servir d'un support informatique comme document de présence à une séance de travail par exemple, et faire viser les personnes présentes à la fin de cette séance.
Je vais donc avoir plusieurs cellules devant comportées une signature

Peut-on associer une cellule à un objet (signautre) via une macro ?
A titre de précision, le code de la Shape "signature" est : JustSign_1
(1 pour signature une je présume)

Encore merci si une solution peut être envisagée.

A bientôt
Et encore merci
 
R

Robert

Guest
Re salut Atchoum25, le forum,

Insère tes signatures à l'aide de ta baguette magique...
Dans l'odre des signatures, sélectionne les cellules qui doivent en contenir une en maintenant [Ctrl] appuyé après la première et ne le relâcher qu'une fois toutes les cellules sont séléctionnées. Par exemple clique dans D5, bloque la touche [Ctrl] et rajoute J10, K10 et M10 (4 signatures donc).

lance la macro ci-dessous (ça devrait foctionner)...

Sub taille()
Dim i As Byte
Dim cel As Range
i = 1
For Each cel In Selection
ActiveWorkbook.Names.Add Name:="signature" & i, RefersTo:=cel
i = i + 1
Next cel
Dim cas As String
Dim x As Byte
For x = 1 To ActiveSheet.OLEObjects.Count
cas = "signature" & x
Range(cas).Select
Dim larg As Single
Dim haut As Single
Dim topcel As Single
Dim leftcel As Single
larg = ActiveCell.Width
haut = ActiveCell.Height
topcel = ActiveCell.Top
leftcel = ActiveCell.Left
ActiveSheet.OLEObjects(x).Select
With Selection
.Width = larg
.Height = haut
.Top = topcel
.Left = leftcel
End With
Next x
End Sub

À plus,

Robert
 
A

ATCHOUM25

Guest
Bonjour à tout le forum, et en particulier à Robert,

J'ai testé la macro reçue.
Elle fonctionne, mais pas tout à fait comme souhaité.
En effet, si on passe de la cellule A3 à A8 pour signer, et que l'on revient à la A6, l'ordre des signatures n'est pas respectée.
Ce qui fait que l'on retrouve la signature de "Pierr" dans la cellule prévue pour "Paul".
Est-il possible d'indéxer l'ordre des signautres pour les rendre homogénes avec les cellules prévues ?

Encore merci pour l'aide apportée, la macro finale avance à grands pas.

A plus (comme on dit dans le 25)
 
R

Robert

Guest
Re Atchoum25, salut le forum,

Voici une dernière modif qui devrait te convenir.
Tu veux la signature de Pierre en A10 et celle de Paul en B5 :
tu importes des signatures (1ierre, 2aul), tu sélectionnes dans l'ordre les cellules (A10 pour Pierre, B5 pour Paul) et tu lance la macro.
Si tu dois rajouter une nouvelle signature de Jacques en F3 :
tu importes la signature de Jacques, tu sélectionne F3 et tu relance la macro. Tu peux en rajouter autant que tu veux.
Pour éviter que les anciennes signatures soient prises en compte je leur ai attribué la propriété Locked=False cela veut dire que si tu protèges la feuille, les signatures seront accessibles (hé oui, on ne peut pas tout avoir...)
Mais rien ne t'empêche de les verrouiller toutes ensuite si tu es sûr que tu ne vas pas rajouter de nouvelle signature (je t'ai fais une deuxième macro pour ça). D'ailleurs si tu te plantes dans l'ordre de sélection des cellules et que tu veux recommencer il te faudra les verrouiller avant de relancer la macro [taille].

Sub taille()
Dim cel As Range
For Each cel In Selection
cel.Select
Dim larg As Single
Dim haut As Single
Dim topcel As Single
Dim leftcel As Single
larg = ActiveCell.Width
haut = ActiveCell.Height
topcel = ActiveCell.Top
leftcel = ActiveCell.Left
For Each sign In ActiveSheet.OLEObjects
sign.Select
With Selection
If .Locked = True Then
.Width = larg
.Height = haut
.Top = topcel
.Left = leftcel
.Locked = False
Exit For
End If
End With
Next sign
Next cel
End Sub

Public Sub verrou()
For Each sign In ActiveSheet.OLEObjects
sign.Locked = True
Next sign
End Sub

À plus,

Robert
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…