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

une aide pour "fusionner ces codes

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 !

zesuila

XLDnaute Occasionnel
Bonjour à tous
Voilà , grâce aux excelliens de ce site , j'ai pu bidouiller un petit programme.
Mais là je coince :
ce code permet lorsque un des choix est proposé d'ouvrir automatiquement la fenêtre des commentaires

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([A2:A20], Target) Is Nothing And Target.Count = 1 Then
If InStr("DIVERS HORS PAO AUTRES DEMANDE PAO ", Target) > 0 Then
If Target.Comment Is Nothing Then
Target.AddComment ' Création commentaire
Target.Comment.Shape.OLEFormat.Object.Font.Name = "Tverdana"
Target.Comment.Shape.OLEFormat.Object.Font.Size = 12
Target.Comment.Shape.OLEFormat.Object.Font.FontStyle = "Bold"
SendKeys "+{F2}"
End If
End If
End If
End Sub


puis j'ai ce second code qui lui me permet d'extraire ces commentaires et de les mettre dans une colonne précise


Sub Extrait()

For Each C In Range("A3", [A65000].End(xlUp))
C.Offset(0, 32) = C.Comment.Text
Next C
End Sub

(merci encore à jacques Boisgontier)

Ce que je souhaiterai c'est de compiler les deux c'est à dire faire le 1er code puis le second dans la même foulée.

A vous de jouer😎

merci
 
Re : une aide pour "fusionner ces codes

Bonjour Zesuila,

Essaye peut-être comme ça
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect([A2:A20], Target) Is Nothing And Target.Count = 1 Then
    If InStr("DIVERS HORS PAO AUTRES DEMANDE PAO ", Target) > 0 Then
      If Target.Comment Is Nothing Then
        Target.AddComment  ' Création commentaire
        Target.Comment.Shape.OLEFormat.Object.Font.Name = "Tverdana"
        Target.Comment.Shape.OLEFormat.Object.Font.Size = 12
        Target.Comment.Shape.OLEFormat.Object.Font.FontSty le = "Bold"
        SendKeys "+{F2}"
        ' Ici
        Target.Offset(0, 32) = Target.Comment.Text
      Else
        ' ou là
        Target.Offset(0, 32) = Target.Comment.Text
      End If
    End If
  End If
End Sub

A+
 
Re : une aide pour "fusionner ces codes

bonjour et merci de ton aide

j'ai donc essayé, mais cela ne fonctionne pas bien ! lorsque j'ai choisi un des choix, par exemple en A3 et que j'ai rempli le commentaire, rien ne se passe en colonne 32.
Par contre si je reprends le même choix, donc en A3, cette fois ci le commentaire se place bien en colonne 32.😕
 
Re : une aide pour "fusionner ces codes

bonjour tuesla

A tester:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([A2:A20], Target) Is Nothing And Target.Count = 1 Then
 If InStr("DIVERS,HORS,PAO,AUTRES,DEMANDE,PAO", Target) > 0 Then
   If Target.Comment Is Nothing Then
      Target.AddComment ' Création commentaire
      Target.Comment.Shape.OLEFormat.Object.Font.Name = "Tverdana"
      Target.Comment.Shape.OLEFormat.Object.Font.Size = 12
      Target.Comment.Shape.OLEFormat.Object.Font.FontStyle = "Bold"
      Target.Comment.Text "Iléla"
   End If
   Target.Offset(0, 2) = Target.Comment.Text
 End If
End If
End Sub
 
Re : une aide pour "fusionner ces codes



Bonjour
mais n'est ce pas le même code que ci dessus mis à part le (0,2) au lieu de (0, 32) ?
de plus les commentaires sont différents je fais referece à ta ligne Target.Comment.Text "Iléla"
 
Re : une aide pour "fusionner ces codes

Re,

Alors essaye peut-être ceci
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect([A2:A20], Target) Is Nothing And Target.Count = 1 Then
    If InStr("DIVERS HORS PAO AUTRES DEMANDE PAO ", Target) > 0 Then
      If Target.Comment Is Nothing Then
        Target.AddComment  ' Création commentaire
        Target.Comment.Shape.OLEFormat.Object.Font.Name = "Tverdana"
        Target.Comment.Shape.OLEFormat.Object.Font.Size = 12
        Target.Comment.Shape.OLEFormat.Object.Font.FontStyle = "Bold"
        SendKeys "+{F2}"
      End If
    End If
    If Target.Comment.Text <> "" Then
      Target.Offset(0, 32) = Target.Comment.Text
    End If
  End If
End Sub

A+
 
Re : une aide pour "fusionner ces codes

idem !
cela le fait mais à la 2e tentative (une 1ere fois je sélectionne autre demande pao et là rien -puis je reprends ce choix et là enfin cela apparait 😕
 
Re : une aide pour "fusionner ces codes

Re
Je explique mon code:

Si le commentaire n'existe pas il est créé avec un debut (Iléla mais tu peux evidemment choisir autr chose ) c'est ce que faisait ton 1er code avec Sendkeys mais en sus il le reporte dans la cellule (0,2) (ou cellule(0,32) si tu preferes
Par contre il est vrai que seule la cellule modifiée subit ce traitement
Si tu veux rafraichir toutes les cellules le mieux est d'appeler ta seconde macro ce qui donnerait:

A tester
Code:
If Not Intersect([A2:A20], Target) Is Nothing And Target.Count = 1 Then
If InStr("DIVERS HORS PAO AUTRES DEMANDE PAO ", Target) > 0 Then
If Target.Comment Is Nothing Then
Target.AddComment ' Création commentaire
Target.Comment.Shape.OLEFormat.Object.Font.Name = "Tverdana"
Target.Comment.Shape.OLEFormat.Object.Font.Size = 12
Target.Comment.Shape.OLEFormat.Object.Font.FontSty le = "Bold"
SendKeys "+{F2}"
End If
End If
End If
[COLOR=blue]Call Extrait
[/COLOR]End Sub
 
Re : une aide pour "fusionner ces codes

est-ce tu veux dire que le code suivant ne fait rien ...

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([A2:A20], Target) Is Nothing And Target.Count = 1 Then
If InStr("DIVERS HORS PAO AUTRES DEMANDE PAO ", Target) > 0 Then
If Target.Comment Is Nothing Then
Target.AddComment ' Création commentaire
Target.Comment.Shape.OLEFormat.Object.Font.Name = "Tverdana"
Target.Comment.Shape.OLEFormat.Object.Font.Size = 12
Target.Comment.Shape.OLEFormat.Object.Font.FontSty le = "Bold"
SendKeys "+{F2}"
End If
End If
End If
Application.Run("Extrait")
End Sub

A+
 
Re : une aide pour "fusionner ces codes

Bonjour James007
Cela fait la même chose que Pierrejean . et que les autres précedentes solutions, il faut refaire le choix pour que cela apparaisse.
 
Re : une aide pour "fusionner ces codes

je joins un fichier "test" qui montre bien ce qui se passe !
pour le test, opter pour autre demande pao", une fenêtre commentaire apparait
y inscrire ce que vous voulez, et là.rien. Sauf si l'on reprend le choix "autre demande pao", là le commentaire va se placer en bout de ligne.
 

Pièces jointes

Re : une aide pour "fusionner ces codes

Re

Il y a deja un probleme du fait qu'il existe dans ThisWorkbook une macro
Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
ensuite je suppose que tu souhaites voir reporter en target(0,32) ce que l'on ecrit dans le commentaire suite au Sendkeys ?
 
Re : une aide pour "fusionner ces codes

tu supposes bien - mais en fait je ne sais pas à quoi correspond le sendkey (je pensais que c'était un raccourci clavier pour la macro 🙁)
mais c'est cela je voudrais pouvoir mette le commentaire en col 32 quans un choix précis est fait (par ex là autres demandes pao)

et cela gêne t il quelquechose ce Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) en "doublon" ?
 
- 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

Réponses
9
Affichages
511
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
601
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…