Remplacer Chr(10) et Chr(34) lorsqu'il y a des références manqua nt
1 réponse
Alex St-Pierre
Bonjour,
J'ai un programme qui ouvre et ferme les librairies de Word. Si les
librairies sont restées ouvertes et que le fichier est ouvert sur une autre
version de Office, ça me créé des références manquantes et VBA ne reconnait
plus rien. Ex: Chr(10) n'est pas reconnu. Si l'utilisateur clique "Faire
confiance au projet VBA", je suis en mesure d'aller effacer les références
manquantes et donc, toutes les fonctions sont reconnus (plus de message
d'erreur).
A l'ouverture du formulaire, je fais un test pour m'assurer qu'il n'y a pas
de références manquantes. Si l'utilisateur n'a pas cliqué "Faire confiance au
projet VBA", je veux lui expliquer comment faire. Comment est-ce que je peux
formater le msgbox correctement sans utiliser les fonctions Chr(10) et
Chr(34) qui ne sont pas reconnus (puisque librairies manquantes) ? Le MsgBox
de IsWordRef_PartB est beaucoup plus beau avec les Chr(10). Existe-t-il un
VbEnter ou autre qui fonctionne avec référence manquante.
Merci!
Alex
Sub MS_Report() 'Ctrl R
If Not IsWordRef("NotUsed") Then Exit Sub 'Ensure the Word library is open
Call MS_Report_PartB("NotUsed")
End Sub
Function IsWordRef(NotUsed As Variant) As Boolean
Dim Ref As Object
Dim refs As Object
Dim sID As String
IsWordRef = False
On Error Resume Next
Set refs = ThisWorkbook.VBProject.References
If refs Is Nothing Then
MsgBox "With regard to Report Generator, change your security
settings so that program can access your VBA code." & _
"Follow these steps to change your security settings:" & _
"1. Open the Tools menu from Excel’s main menu" & vbenter & _
"2. Click on Macro and then on Security …" & _
"3. When the Security dialog box opens, click on the Trusted
Sources tab" & _
"4. Check the Trust access to Visual Basic project check box" & _
"5. Click on OK" & _
"En regard du Générateur de rapport, vous devez changer votre
niveau de sécurité pour que le programme puisse accéder au code VBA." & _
"Suivre ces étapes pour changer le niveau de écurité:" & _
"1. Ouvrir le menu Outils à partir du menu principal d'Excel" & _
"2. Cliquer sur Macro et ensuite sur Sécurité …" & _
"3. Quand la boite de dialogue Sécurité s'ouvre, cliquer sur
l'onglet Éditeurs approuvés" & _
"4. Cocher la case Faire confiance au projet Visual Basic" & _
"5. Cliquer sur OK", , "Need to change security settings"
Exit Function
End If
On Error GoTo 0
IsWordRef = IsWordRef_PartB("NotUsed")
End Function
Function IsWordRef_PartB(NotUsed As Variant) As Boolean
Dim Ref As Object
Dim refs As Object
Dim sID As String
IsWordRef_PartB = False
On Error Resume Next
Set refs = ThisWorkbook.VBProject.References
If refs Is Nothing Then
MsgBox "With regard to " & Chr(34) & "Report Generator" & Chr(34) &
", change your security settings so that program can access your VBA code." &
Chr(10) & _
"Follow these steps to change your security settings:" & Chr(10)
& _
"1. Open the Tools menu from Excel’s main menu" & Chr(10) & _
"2. Click on Macro and then on Security …" & Chr(10) & _
"3. When the " & Chr(34) & "Security" & Chr(34) & " dialog box
opens, click on the " & Chr(34) & "Trusted Sources" & Chr(34) & " tab" &
Chr(10) & _
"4. Check the " & Chr(34) & "Trust access to Visual Basic
project" & Chr(34) & " check box" & Chr(10) & _
"5. Click on OK" & Chr(10) & Chr(10) & _
"En regard du " & Chr(34) & "Générateur de rapport" & Chr(34) &
", vous devez changer votre niveau de sécurité pour que le programme puisse
accéder au code VBA." & Chr(10) & _
"Suivre ces étapes pour changer le niveau de écurité:" & Chr(10)
& _
"1. Ouvrir le menu Outils à partir du menu principal d'Excel" &
Chr(10) & _
"2. Cliquer sur Macro et ensuite sur Sécurité …" & Chr(10) & _
"3. Quand la boite de dialogue " & Chr(34) & "Sécurité" &
Chr(34) & " s'ouvre, cliquer sur l'onglet " & Chr(34) & "Éditeurs approuvés"
& Chr(34) & Chr(10) & _
"4. Cocher la case " & Chr(34) & "Faire confiance au projet
Visual Basic" & Chr(34) & Chr(10) & _
"5. Cliquer sur OK", , "Need to change security settings"
Exit Function
End If
On Error GoTo 0
For Each Ref In refs 'Remove missing references
If Ref.isbroken = True Then
refs.Remove Ref
End If
Next
sID = "{00020905-0000-0000-C000-000000000046}" 'Word
If Len(sID) = 0 Then Exit Function
For Each Ref In refs
If Ref.GUID = sID Then
IsWordRef_PartB = True
Exit Function
End If
Next
On Error GoTo errH
refs.AddFromGuid sID, 0, 0
IsWordRef_PartB = True
Exit Function
errH:
MsgBox "Error setting reference to Word"
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
isabelle
bonjour Alex,
voir dans l'aide à "Constantes diverses"
vbCrLf Chr(13) + Chr(10) Combinaison des caractères de retour chariot et de saut de ligne
vbCr Chr(13) Caractère de saut de paragraphe
vbLf Chr(10) Caractère de saut de ligne
vbNewLine Chr(13) + Chr(10) ou, sur Macintosh, Chr(13) Caractère de saut de ligne spécifique à la plate-forme ;choix en fonction de la plate-forme
isabelle
Bonjour, J'ai un programme qui ouvre et ferme les librairies de Word. Si les librairies sont restées ouvertes et que le fichier est ouvert sur une autre version de Office, ça me créé des références manquantes et VBA ne reconnait plus rien. Ex: Chr(10) n'est pas reconnu. Si l'utilisateur clique "Faire confiance au projet VBA", je suis en mesure d'aller effacer les références manquantes et donc, toutes les fonctions sont reconnus (plus de message d'erreur).
A l'ouverture du formulaire, je fais un test pour m'assurer qu'il n'y a pas de références manquantes. Si l'utilisateur n'a pas cliqué "Faire confiance au projet VBA", je veux lui expliquer comment faire. Comment est-ce que je peux formater le msgbox correctement sans utiliser les fonctions Chr(10) et Chr(34) qui ne sont pas reconnus (puisque librairies manquantes) ? Le MsgBox de IsWordRef_PartB est beaucoup plus beau avec les Chr(10). Existe-t-il un VbEnter ou autre qui fonctionne avec référence manquante. Merci! Alex
Sub MS_Report() 'Ctrl R If Not IsWordRef("NotUsed") Then Exit Sub 'Ensure the Word library is open Call MS_Report_PartB("NotUsed") End Sub
Function IsWordRef(NotUsed As Variant) As Boolean
Dim Ref As Object Dim refs As Object Dim sID As String
IsWordRef = False
On Error Resume Next Set refs = ThisWorkbook.VBProject.References If refs Is Nothing Then MsgBox "With regard to Report Generator, change your security settings so that program can access your VBA code." & _ "Follow these steps to change your security settings:" & _ "1. Open the Tools menu from Excel’s main menu" & vbenter & _ "2. Click on Macro and then on Security …" & _ "3. When the Security dialog box opens, click on the Trusted Sources tab" & _ "4. Check the Trust access to Visual Basic project check box" & _ "5. Click on OK" & _ "En regard du Générateur de rapport, vous devez changer votre niveau de sécurité pour que le programme puisse accéder au code VBA." & _ "Suivre ces étapes pour changer le niveau de écurité:" & _ "1. Ouvrir le menu Outils à partir du menu principal d'Excel" & _ "2. Cliquer sur Macro et ensuite sur Sécurité …" & _ "3. Quand la boite de dialogue Sécurité s'ouvre, cliquer sur l'onglet Éditeurs approuvés" & _ "4. Cocher la case Faire confiance au projet Visual Basic" & _ "5. Cliquer sur OK", , "Need to change security settings" Exit Function End If On Error GoTo 0
IsWordRef = IsWordRef_PartB("NotUsed")
End Function
Function IsWordRef_PartB(NotUsed As Variant) As Boolean
Dim Ref As Object Dim refs As Object Dim sID As String
IsWordRef_PartB = False
On Error Resume Next Set refs = ThisWorkbook.VBProject.References If refs Is Nothing Then MsgBox "With regard to " & Chr(34) & "Report Generator" & Chr(34) & ", change your security settings so that program can access your VBA code." & Chr(10) & _ "Follow these steps to change your security settings:" & Chr(10) & _ "1. Open the Tools menu from Excel’s main menu" & Chr(10) & _ "2. Click on Macro and then on Security …" & Chr(10) & _ "3. When the " & Chr(34) & "Security" & Chr(34) & " dialog box opens, click on the " & Chr(34) & "Trusted Sources" & Chr(34) & " tab" & Chr(10) & _ "4. Check the " & Chr(34) & "Trust access to Visual Basic project" & Chr(34) & " check box" & Chr(10) & _ "5. Click on OK" & Chr(10) & Chr(10) & _ "En regard du " & Chr(34) & "Générateur de rapport" & Chr(34) & ", vous devez changer votre niveau de sécurité pour que le programme puisse accéder au code VBA." & Chr(10) & _ "Suivre ces étapes pour changer le niveau de écurité:" & Chr(10) & _ "1. Ouvrir le menu Outils à partir du menu principal d'Excel" & Chr(10) & _ "2. Cliquer sur Macro et ensuite sur Sécurité …" & Chr(10) & _ "3. Quand la boite de dialogue " & Chr(34) & "Sécurité" & Chr(34) & " s'ouvre, cliquer sur l'onglet " & Chr(34) & "Éditeurs approuvés" & Chr(34) & Chr(10) & _ "4. Cocher la case " & Chr(34) & "Faire confiance au projet Visual Basic" & Chr(34) & Chr(10) & _ "5. Cliquer sur OK", , "Need to change security settings" Exit Function End If On Error GoTo 0 For Each Ref In refs 'Remove missing references If Ref.isbroken = True Then refs.Remove Ref End If Next sID = "{00020905-0000-0000-C000-000000000046}" 'Word If Len(sID) = 0 Then Exit Function For Each Ref In refs If Ref.GUID = sID Then IsWordRef_PartB = True Exit Function End If Next
On Error GoTo errH
refs.AddFromGuid sID, 0, 0 IsWordRef_PartB = True
Exit Function errH: MsgBox "Error setting reference to Word"
End Function
bonjour Alex,
voir dans l'aide à "Constantes diverses"
vbCrLf
Chr(13) + Chr(10)
Combinaison des caractères de retour chariot et de saut de ligne
vbCr
Chr(13)
Caractère de saut de paragraphe
vbLf
Chr(10)
Caractère de saut de ligne
vbNewLine
Chr(13) + Chr(10) ou, sur Macintosh, Chr(13)
Caractère de saut de ligne spécifique à la plate-forme ;choix en fonction de la plate-forme
isabelle
Bonjour,
J'ai un programme qui ouvre et ferme les librairies de Word. Si les
librairies sont restées ouvertes et que le fichier est ouvert sur une autre
version de Office, ça me créé des références manquantes et VBA ne reconnait
plus rien. Ex: Chr(10) n'est pas reconnu. Si l'utilisateur clique "Faire
confiance au projet VBA", je suis en mesure d'aller effacer les références
manquantes et donc, toutes les fonctions sont reconnus (plus de message
d'erreur).
A l'ouverture du formulaire, je fais un test pour m'assurer qu'il n'y a pas
de références manquantes. Si l'utilisateur n'a pas cliqué "Faire confiance au
projet VBA", je veux lui expliquer comment faire. Comment est-ce que je peux
formater le msgbox correctement sans utiliser les fonctions Chr(10) et
Chr(34) qui ne sont pas reconnus (puisque librairies manquantes) ? Le MsgBox
de IsWordRef_PartB est beaucoup plus beau avec les Chr(10). Existe-t-il un
VbEnter ou autre qui fonctionne avec référence manquante.
Merci!
Alex
Sub MS_Report() 'Ctrl R
If Not IsWordRef("NotUsed") Then Exit Sub 'Ensure the Word library is open
Call MS_Report_PartB("NotUsed")
End Sub
Function IsWordRef(NotUsed As Variant) As Boolean
Dim Ref As Object
Dim refs As Object
Dim sID As String
IsWordRef = False
On Error Resume Next
Set refs = ThisWorkbook.VBProject.References
If refs Is Nothing Then
MsgBox "With regard to Report Generator, change your security
settings so that program can access your VBA code." & _
"Follow these steps to change your security settings:" & _
"1. Open the Tools menu from Excel’s main menu" & vbenter & _
"2. Click on Macro and then on Security …" & _
"3. When the Security dialog box opens, click on the Trusted
Sources tab" & _
"4. Check the Trust access to Visual Basic project check box" & _
"5. Click on OK" & _
"En regard du Générateur de rapport, vous devez changer votre
niveau de sécurité pour que le programme puisse accéder au code VBA." & _
"Suivre ces étapes pour changer le niveau de écurité:" & _
"1. Ouvrir le menu Outils à partir du menu principal d'Excel" & _
"2. Cliquer sur Macro et ensuite sur Sécurité …" & _
"3. Quand la boite de dialogue Sécurité s'ouvre, cliquer sur
l'onglet Éditeurs approuvés" & _
"4. Cocher la case Faire confiance au projet Visual Basic" & _
"5. Cliquer sur OK", , "Need to change security settings"
Exit Function
End If
On Error GoTo 0
IsWordRef = IsWordRef_PartB("NotUsed")
End Function
Function IsWordRef_PartB(NotUsed As Variant) As Boolean
Dim Ref As Object
Dim refs As Object
Dim sID As String
IsWordRef_PartB = False
On Error Resume Next
Set refs = ThisWorkbook.VBProject.References
If refs Is Nothing Then
MsgBox "With regard to " & Chr(34) & "Report Generator" & Chr(34) &
", change your security settings so that program can access your VBA code." &
Chr(10) & _
"Follow these steps to change your security settings:" & Chr(10)
& _
"1. Open the Tools menu from Excel’s main menu" & Chr(10) & _
"2. Click on Macro and then on Security …" & Chr(10) & _
"3. When the " & Chr(34) & "Security" & Chr(34) & " dialog box
opens, click on the " & Chr(34) & "Trusted Sources" & Chr(34) & " tab" &
Chr(10) & _
"4. Check the " & Chr(34) & "Trust access to Visual Basic
project" & Chr(34) & " check box" & Chr(10) & _
"5. Click on OK" & Chr(10) & Chr(10) & _
"En regard du " & Chr(34) & "Générateur de rapport" & Chr(34) &
", vous devez changer votre niveau de sécurité pour que le programme puisse
accéder au code VBA." & Chr(10) & _
"Suivre ces étapes pour changer le niveau de écurité:" & Chr(10)
& _
"1. Ouvrir le menu Outils à partir du menu principal d'Excel" &
Chr(10) & _
"2. Cliquer sur Macro et ensuite sur Sécurité …" & Chr(10) & _
"3. Quand la boite de dialogue " & Chr(34) & "Sécurité" &
Chr(34) & " s'ouvre, cliquer sur l'onglet " & Chr(34) & "Éditeurs approuvés"
& Chr(34) & Chr(10) & _
"4. Cocher la case " & Chr(34) & "Faire confiance au projet
Visual Basic" & Chr(34) & Chr(10) & _
"5. Cliquer sur OK", , "Need to change security settings"
Exit Function
End If
On Error GoTo 0
For Each Ref In refs 'Remove missing references
If Ref.isbroken = True Then
refs.Remove Ref
End If
Next
sID = "{00020905-0000-0000-C000-000000000046}" 'Word
If Len(sID) = 0 Then Exit Function
For Each Ref In refs
If Ref.GUID = sID Then
IsWordRef_PartB = True
Exit Function
End If
Next
On Error GoTo errH
refs.AddFromGuid sID, 0, 0
IsWordRef_PartB = True
Exit Function
errH:
MsgBox "Error setting reference to Word"
vbCrLf Chr(13) + Chr(10) Combinaison des caractères de retour chariot et de saut de ligne
vbCr Chr(13) Caractère de saut de paragraphe
vbLf Chr(10) Caractère de saut de ligne
vbNewLine Chr(13) + Chr(10) ou, sur Macintosh, Chr(13) Caractère de saut de ligne spécifique à la plate-forme ;choix en fonction de la plate-forme
isabelle
Bonjour, J'ai un programme qui ouvre et ferme les librairies de Word. Si les librairies sont restées ouvertes et que le fichier est ouvert sur une autre version de Office, ça me créé des références manquantes et VBA ne reconnait plus rien. Ex: Chr(10) n'est pas reconnu. Si l'utilisateur clique "Faire confiance au projet VBA", je suis en mesure d'aller effacer les références manquantes et donc, toutes les fonctions sont reconnus (plus de message d'erreur).
A l'ouverture du formulaire, je fais un test pour m'assurer qu'il n'y a pas de références manquantes. Si l'utilisateur n'a pas cliqué "Faire confiance au projet VBA", je veux lui expliquer comment faire. Comment est-ce que je peux formater le msgbox correctement sans utiliser les fonctions Chr(10) et Chr(34) qui ne sont pas reconnus (puisque librairies manquantes) ? Le MsgBox de IsWordRef_PartB est beaucoup plus beau avec les Chr(10). Existe-t-il un VbEnter ou autre qui fonctionne avec référence manquante. Merci! Alex
Sub MS_Report() 'Ctrl R If Not IsWordRef("NotUsed") Then Exit Sub 'Ensure the Word library is open Call MS_Report_PartB("NotUsed") End Sub
Function IsWordRef(NotUsed As Variant) As Boolean
Dim Ref As Object Dim refs As Object Dim sID As String
IsWordRef = False
On Error Resume Next Set refs = ThisWorkbook.VBProject.References If refs Is Nothing Then MsgBox "With regard to Report Generator, change your security settings so that program can access your VBA code." & _ "Follow these steps to change your security settings:" & _ "1. Open the Tools menu from Excel’s main menu" & vbenter & _ "2. Click on Macro and then on Security …" & _ "3. When the Security dialog box opens, click on the Trusted Sources tab" & _ "4. Check the Trust access to Visual Basic project check box" & _ "5. Click on OK" & _ "En regard du Générateur de rapport, vous devez changer votre niveau de sécurité pour que le programme puisse accéder au code VBA." & _ "Suivre ces étapes pour changer le niveau de écurité:" & _ "1. Ouvrir le menu Outils à partir du menu principal d'Excel" & _ "2. Cliquer sur Macro et ensuite sur Sécurité …" & _ "3. Quand la boite de dialogue Sécurité s'ouvre, cliquer sur l'onglet Éditeurs approuvés" & _ "4. Cocher la case Faire confiance au projet Visual Basic" & _ "5. Cliquer sur OK", , "Need to change security settings" Exit Function End If On Error GoTo 0
IsWordRef = IsWordRef_PartB("NotUsed")
End Function
Function IsWordRef_PartB(NotUsed As Variant) As Boolean
Dim Ref As Object Dim refs As Object Dim sID As String
IsWordRef_PartB = False
On Error Resume Next Set refs = ThisWorkbook.VBProject.References If refs Is Nothing Then MsgBox "With regard to " & Chr(34) & "Report Generator" & Chr(34) & ", change your security settings so that program can access your VBA code." & Chr(10) & _ "Follow these steps to change your security settings:" & Chr(10) & _ "1. Open the Tools menu from Excel’s main menu" & Chr(10) & _ "2. Click on Macro and then on Security …" & Chr(10) & _ "3. When the " & Chr(34) & "Security" & Chr(34) & " dialog box opens, click on the " & Chr(34) & "Trusted Sources" & Chr(34) & " tab" & Chr(10) & _ "4. Check the " & Chr(34) & "Trust access to Visual Basic project" & Chr(34) & " check box" & Chr(10) & _ "5. Click on OK" & Chr(10) & Chr(10) & _ "En regard du " & Chr(34) & "Générateur de rapport" & Chr(34) & ", vous devez changer votre niveau de sécurité pour que le programme puisse accéder au code VBA." & Chr(10) & _ "Suivre ces étapes pour changer le niveau de écurité:" & Chr(10) & _ "1. Ouvrir le menu Outils à partir du menu principal d'Excel" & Chr(10) & _ "2. Cliquer sur Macro et ensuite sur Sécurité …" & Chr(10) & _ "3. Quand la boite de dialogue " & Chr(34) & "Sécurité" & Chr(34) & " s'ouvre, cliquer sur l'onglet " & Chr(34) & "Éditeurs approuvés" & Chr(34) & Chr(10) & _ "4. Cocher la case " & Chr(34) & "Faire confiance au projet Visual Basic" & Chr(34) & Chr(10) & _ "5. Cliquer sur OK", , "Need to change security settings" Exit Function End If On Error GoTo 0 For Each Ref In refs 'Remove missing references If Ref.isbroken = True Then refs.Remove Ref End If Next sID = "{00020905-0000-0000-C000-000000000046}" 'Word If Len(sID) = 0 Then Exit Function For Each Ref In refs If Ref.GUID = sID Then IsWordRef_PartB = True Exit Function End If Next
On Error GoTo errH
refs.AddFromGuid sID, 0, 0 IsWordRef_PartB = True
Exit Function errH: MsgBox "Error setting reference to Word"