erreur avec cellules fusionnées

  • Initiateur de la discussion Initiateur de la discussion jtitin
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jtitin

XLDnaute Occasionnel
Bonjour à tous
j'utile cette macro ci dessous qui fonctionne si la cellule sélectionnée est unique
si la cellules est fusionnée cela ne marche plus.
sélection dans collone H et vérification dans collone G
Que faut il modifier pour pouvoir utiliser des cellules fusionnées ??

Merci pour votre aide

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
On Error GoTo fin
If Not Intersect(Target, Range("H15:H25")) Is Nothing Then
If Target.Offset(0, -1) = "" Then Exit Sub

With ActiveSheet.Shapes(Target.Offset(0, -1).Text)
.Width = Application.CentimetersToPoints(Target.Value / 10)
.Top = [B18].Top
.Left = [B18].Left
.Height = 15
.TextFrame.Characters.Text = Target.Offset(0, -1).Text
End With
End If
Exit Sub
fin:

With ActiveSheet.Shapes.AddShape(msoShapePentagon, [B18].Left, [B18].Top, Application.CentimetersToPoints(Target.Value / 10), 15)
.TextFrame.Characters.Text = Target.Offset(0, -1).Text

End With
ActiveCell.Offset(0, 1).Select

End Sub
 
Re : erreur avec cellules fusionnées

Oui c'était un peu plus compliqué :
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim NomSh As String, Sh As Shape
Set Target = Intersect(Target, Range("V7:V21"))
If Target Is Nothing Then Exit Sub
NomSh = Target.Offset(0, -1).MergeArea(1, 1).Value
If NomSh = "" Then Exit Sub
On Error Resume Next
Set Sh = ActiveSheet.Shapes(NomSh)
If Err Then
   Set Sh = ActiveSheet.Shapes.AddShape(msoShapePentagon, Me.[B6].Left, Me.[B6].Top, Application.CentimetersToPoints(Target.Value / 10), 15)
   Sh.Name = NomSh
   End If
Sh.Width = Application.CentimetersToPoints(Target.Value / 10)
Sh.Top = [B6].Top
Sh.Left = [B6].Left
Sh.Height = 15
Sh.TextFrame.Characters.Text = NomSh
Cancel = True
End Sub
Cordialement.
 
Re : erreur avec cellules fusionnées

de nouveau de retour
cela marche comme je souhaite mais il y a un problème dans le fonctionnement
si une forme est déja présente et que je fais un double clic pour l'avoir de nouveau la 1er s'efface et est remplacé
je souhaite pouvoir les conserver et en ajouter

merci encore
 

Pièces jointes

Re : erreur avec cellules fusionnées

non la forme une fois créer je la déplace
ensuite je reclic pour obtenir la même forme
la 1er est suprimer et est recréer en B6
il faudrait que la forme déplacée reste et une nouvelle vienne en B6 pour être déplacée
 
Re : erreur avec cellules fusionnées

Bon alors comme ça :
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim NomSh As String, Sh As Shape
Set Target = Intersect(Target, Range("V7:V21"))
If Target Is Nothing Then Exit Sub
NomSh = Target.Offset(0, -1).MergeArea(1, 1).Value
If NomSh = "" Then Exit Sub
Set Sh = ActiveSheet.Shapes.AddShape(msoShapePentagon, Me.[B6].Left, Me.[B6].Top, Application.CentimetersToPoints(Target.Value / 10), 15)
Sh.TextFrame.Characters.Text = NomSh
Cancel = True
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
Réponses
4
Affichages
243
Réponses
2
Affichages
511
Retour