[Résolu][VBS] supprimer le dictionnaire pour un classeur
Modérateur : Vilains modOOs
Règles du forum
Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
-
- NOOuvel adepte
- Messages : 12
- Inscription : 01 déc. 2021 20:23
[Résolu][VBS] supprimer le dictionnaire pour un classeur
Bonjour,
J'aimerais connaître comment supprimer le dictionnaire pour un classeur à l'aide d'une macro.
Merci d'avance.
Bernard.
J'aimerais connaître comment supprimer le dictionnaire pour un classeur à l'aide d'une macro.
Merci d'avance.
Bernard.
Libre Office 7.2.3.2 (x64 ) - Windows 8
-
- IdOOle de la suite
- Messages : 25184
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Calc] supprimer le dictionnaire pour un classeur
Salut,
Les dictionnaires sont fournis sous forme d'extension et accessibles depuis tous les modules.
On ne peut donc les supprimer au niveau d'un classeur.
Que cherches-tu à faire exactement ?
Les dictionnaires sont fournis sous forme d'extension et accessibles depuis tous les modules.
On ne peut donc les supprimer au niveau d'un classeur.
Que cherches-tu à faire exactement ?
-
- NOOuvel adepte
- Messages : 12
- Inscription : 01 déc. 2021 20:23
Re: [Calc] supprimer le dictionnaire pour un classeur
Bonjour,
Je cherche à ce que les mots avec faute d'orthographe dans les cellules ne soient pas soulignés en rouge uniquement dans le classeur en cours.
Je cherche à ce que les mots avec faute d'orthographe dans les cellules ne soient pas soulignés en rouge uniquement dans le classeur en cours.
Libre Office 7.2.3.2 (x64 ) - Windows 8
-
- IdOOle de la suite
- Messages : 25184
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Calc] supprimer le dictionnaire pour un classeur
Dans ce cas, tu enregistres un modèle OTS dont les styles de cellule seront sans définition de langue.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
-
- NOOuvel adepte
- Messages : 12
- Inscription : 01 déc. 2021 20:23
Re: [Calc] supprimer le dictionnaire pour un classeur
Bonsoir,
En Microsoft Word, une macro permet de l'effectuer :
Ce que je cherche c'est l'équivalent en Calc s'il existe.
Cordialement,
Bernard
En Microsoft Word, une macro permet de l'effectuer :
Code : Tout sélectionner
ActiveDocument.ShowGrammaticalErrors = True
ActiveDocument.ShowSpellingErrors = True
Cordialement,
Bernard
Libre Office 7.2.3.2 (x64 ) - Windows 8
-
- IdOOle de la suite
- Messages : 25184
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Calc] supprimer le dictionnaire pour un classeur
Donc ce n'est pas supprimer un dictionnaire mais désactiver le correcteur orthographique.
Sous Writer ou Calc :
Sous Writer ou Calc :
Code : Tout sélectionner
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "SpellOnline"
args1(0).Value = false
dispatcher.executeDispatch(document, ".uno:SpellOnline", "", 0, args1())
-
- NOOuvel adepte
- Messages : 12
- Inscription : 01 déc. 2021 20:23
Re: [Calc] supprimer le dictionnaire pour un classeur
Bonjour dude,
Merci de ton code, il fonctionne pour désactiver le dictionnaire.
Toutefois, la désactivation n'est pas prise en compte à l'enregistrement du fichier.
Ci dessous le code en VBscript Windows en commande OLE sous Windows.
Bien à toi,
Bernard.
Merci de ton code, il fonctionne pour désactiver le dictionnaire.
Toutefois, la désactivation n'est pas prise en compte à l'enregistrement du fichier.
Ci dessous le code en VBscript Windows en commande OLE sous Windows.
Bien à toi,
Bernard.
Code : Tout sélectionner
' Spelling.vbs
' Désactiver le dictionnaire pour le classeur.
'
' Utilisation : Copier ce code dans un fichier.vbs,
' l'exécuter sous Windows.
'
' Ce code désactive effectivement le dictionnaire pour le classeur mais ne le supprime pas :
' une fois enregistré et réouvert, le dictionnaire est toujours actif.
'
Option Explicit
' Paramètres.
Const ColorTitle = 16776960 ' Couleur des titres jaune ( yellow ).
Const OdsFile = "_Result.ods" ' Fichier Libre Office de sortie.
Main()
Sub Main()
Dim args1( 0 ) ' Tableau d'1 ligne pour les paramètres de oDesktop.LoadComponentFromURL()
Dim aSpellOnline1( 0 ) ' Tableau d'1 ligne pour les paramètres du dictionnaire.
Dim c ' Colonne de la cellule à traiter : me permet d'ajouter, supprimer et d'effacer des colonnes simplement.
Dim i ' Numérique de comptage.
Dim l ' Ligne de la cellule à traiter : me permet d'ajouter, supprimer et d'effacer des lignes simplement.
Dim oDesktop ' Objet créé par oServiceManager.CreateInstance()
Dim oDoc ' Objet du classeur créé par oDesktop.LoadComponentFromURL()
Dim oServiceManager ' Objet Libre Office créé par CreateObject( "com.sun.star.ServiceManager" )
Dim oSheet ' Objet de la feuille
bv_FileDelete( OdsFile ) ' Effacer le fichier de sortie.
' Ouverture du classeur Libre Office et paramétrage de l'affichage.
Set oServiceManager = CreateObject( "com.sun.star.ServiceManager" )
Set args1( 0 ) = oServiceManager.Bridge_GetStruct( "com.sun.star.beans.PropertyValue" )
args1( 0 ).name = "Hidden"
args1( 0 ).value = False ' True = n'affiche pas le classeur, False = affiche le classeur.
Set oDesktop = oServiceManager.CreateInstance( "com.sun.star.frame.Desktop" )
Set oDoc = oDesktop.LoadComponentFromURL( "private:factory/scalc", "_blank", 0, args1 )
Set oSheet = oDoc.GetSheets.GetByIndex( 0 )
ca_CellsGridAll( oSheet )
l = 0 : c = -1
' Ecriture des titres.
c = c + 1 : oSheet.GetCellByPosition( c, l ).SetString( "N°" )
c = c + 1 : oSheet.GetCellByPosition( c, l ).SetString( "Object" )
c = c + 1 : oSheet.GetCellByPosition( c, l ).SetString( "IsHidden" )
oSheet.getCellRangeByPosition( 0, l, c, l ).CellBackColor = ColorTitle
l = l + 1 : c = -1
c = c + 1 : oSheet.GetCellByPosition( c, l ).SetValue( i )
c = c + 1 : oSheet.GetCellByPosition( c, l ).SetString( "Frame 1" )
c = c + 1 : ca_WriteBool oSheet, c, l, True
l = l + 1 : c = -1
c = c + 1 : oSheet.GetCellByPosition( c, l ).SetValue( i )
c = c + 1 : oSheet.GetCellByPosition( c, l ).SetString( "Frame 2" )
c = c + 1 : ca_WriteBool oSheet, c, l, False
ca_AutoFit( oSheet )
msgbox "Le dictionnaire est activé.", 0, "Info"
' Désactivation du dictionnaire pour le classeur.
Set aSpellOnline1( 0 ) = oServiceManager.Bridge_GetStruct( "com.sun.star.beans.PropertyValue" )
aSpellOnline1( 0 ).name = "SpellOnline"
aSpellOnline1( 0 ).value = False
oDoc.setPropertyValue "SpellOnline", aSpellOnline1
msgbox "Le dictionnaire est désactivé." & chr( 10 ) _
& "Le fichier va s'enregistrer, se fermer et s'ouvrir." & chr( 10 ) _
& "Le dictionnaire sera toujours actif.", 0, "Info"
oDoc.storeAsURL bv_FileToUrl( OdsFile ), Array()
WSCript.sleep( 300 )
oDoc.Close( True )
WSCript.sleep( 500 )
Set oServiceManager = Nothing
CreateObject( "WScript.Shell" ).Run "explorer.exe " & bv_FileToFullName( OdsFile ), 1, False
End Sub
' Règle les dimensions des cellules utilisées.
Sub ca_AutoFit( oSheet )
Dim oCursor
Set oCursor = oSheet.createCursor()
oCursor.gotoEndOfUsedArea( True )
oSheet.getCellRangeByPosition( 0, 0, oCursor.getRangeAddress.EndColumn, oCursor.getRangeAddress.EndRow ) _
.Columns.OptimalWidth = True
Set oCursor = Nothing
End Sub
' Encadre toutes les cellules de la feuille.
Sub ca_CellsGridAll( oSheet )
Dim oRange
Set oRange = oSheet.getCellRangeByPosition( 0, 0, 1023, 1048575 ) 'Max col - 1 et max row - 1
oRange.setPropertyValue "TopBorder" , Array( 0, 0, 2, 0 )
oRange.setPropertyValue "BottomBorder", Array( 0, 0, 2, 0 )
oRange.setPropertyValue "LeftBorder" , Array( 0, 0, 2, 0 )
oRange.setPropertyValue "RightBorder" , Array( 0, 0, 2, 0 )
Set oRange = Nothing
End Sub
' Ecrit une valeur logique dans une cellule.
Function ca_WriteBool( oSheet, c, l, lValue )
Dim fValue
fValue = "=FALSE()"
If lValue Then fValue = "=TRUE()"
oSheet.GetCellByPosition( c, l ).SetFormula( fValue )
End Function
' Effacer un fichier.
Sub bv_FileDelete( cFile )
On Error Resume Next ' Au cas où il n'y a pas de fichier ou fichier protégé.
CreateObject( "Scripting.FileSystemObject" ).DeleteFile( bv_FileToFullName( cFile ) )
On Error goto 0
End Sub
' Convertit un nom de fichier en nom avec tout son chemin.
Function bv_FileToFullName( cFile )
Dim cFullName
cFullName = cFile
If InStr( cFullName, "\" ) = 0 Then
cFullName = Left( WScript.ScriptFullName, InStrRev( WScript.ScriptFullName, "\" ) ) & cFullName
ElseIf Left( cFullName, 1 ) = "\" Then
cFullName = Left( WScript.ScriptFullName, 2 ) & cFullName
End If
bv_FileToFullName = cFullName
End Function
' Convertit un nom de fichier Windows en URL.
Function bv_FileToUrl( cFile )
Dim cUrl
cUrl = cFile
If InStr( cUrl, "/" ) = 0 Then
If InStr( cUrl, "\" ) = 0 Then
cUrl = Left( WScript.ScriptFullName, InStrRev( WScript.ScriptFullName, "\" ) ) & cUrl
ElseIf Left( cUrl, 1 ) = "\" Then
cUrl = Left( WScript.ScriptFullName, 2 ) & cUrl
End If
cUrl = Replace( cUrl, "\", "/" )
cUrl = Replace( cUrl, ":", "|" )
cUrl = Replace( cUrl, " ", "%20" )
cUrl = "file:///" & cUrl
End If
bv_FileToUrl = cUrl
End Function
Libre Office 7.2.3.2 (x64 ) - Windows 8
-
- IdOOle de la suite
- Messages : 25184
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Calc] supprimer le dictionnaire pour un classeur
Relis les éléments de réponse que je t'ai fait avant.Bernard Mouille a écrit :Toutefois, la désactivation n'est pas prise en compte à l'enregistrement du fichier.
Ce paramétrage est général à tous les modules puisque OpenOffice ou ses dérivés est une suite intégrée.
Dans ce cas, la balise n'est pas [Calc] mais [VBS].Bernard Mouille a écrit :Ci dessous le code en VBscript Windows en commande OLE sous Windows.
-
- NOOuvel adepte
- Messages : 12
- Inscription : 01 déc. 2021 20:23