FAQ LibreOffice et Apache OpenOfficeConsultez toutes les FAQ
Nombre d'auteurs : 10, nombre de questions : 359, dernière mise à jour : 15 juillet 2017 Ajouter une question
Bienvenue sur la FAQ, elle a été réalisée pour répondre aux questions concernant les suites bureautiques Apache OpenOffice (AOO) et LibreOffice (LibO).
Si vous souhaitez participer pour l'améliorer, pour proposer vos contributions ou si vous constatez des erreurs dans cette page, n'hésitez-pas !!! Participez.
- Comment ajouter un nom dans le classeur ?
- Comment vérifier l'existence d'un nom dans le classeur ?
- Comment lister les cellules et plages nommées dans le classeur ?
- Comment récupérer des informations sur une cellule ou plage nommée ?
- Comment supprimer le contenu d'une cellule ou plage nommée ?
- Comment supprimer les noms ?
Un nom est une chaîne de caractères (sans espace) qui représente une cellule ou une plage de cellules. Utilisez des noms lorsque vous avez besoin de faire références à des plages complexes ou pour une meilleure compréhension de votre projet.
Par exemple, vous pouvez remplacer une formule classique:
=SOMME(A1:A10)*B1par
=SOMME(A1:A10)*CoefficientCoefficient étant le nom préalablement donné à la cellule B1.
Pour ajouter un nom manuellement, utilisez le menu Insertion :
- Noms ;
- Définir ;
- Complètez le champ « Nom » ;
- Le champ « Assigné à » permet de préciser la cellule ou la plage à nommer ;
- Cliquez sur le bouton « Ajouter » ;
- puis sur le bouton OK pour valider.
Pour ajouter un nom par macro:
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Sub AjoutNom Dim oNom As Object Dim oCellAdress As New com.sun.star.table.CellAddress '-------------- 'La procédure renvoie une erreur si le nom existe déja 'dans le classeur. '-------------- 'Premier exemple oNom = ThisComponent.NamedRanges 'Nomme la plage B2:C5 dans la feuille nommée Feuille1 oNom.addNewByName( "TestNom1" , "$Feuille1.$B2:$C5" , oCellAdress , 0 ) 'Deuxième exemple 'Nomme la cellule A10 dans la feuille nommée Feuille2 oNom.addNewByName( "TestNom2", "$Feuille2.$A10:$A10" , createUnoStruct( "com.sun.star.table.CellAddress" ) , 0 ) End Sub |
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 | Sub VerifierExistenceNom Dim LeNom As String LeNom = "NomTest" If ThisComponent.NamedRanges.HasByName( LeNom ) Then MsgBox "Il existe un Nom '" & LeNom & "' dans le classeur." Else MsgBox "Le Nom '" & LeNom & "' n'existe pas dans le classeur." End If End Sub |
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 | Sub ListeNoms Dim i As Integer Dim Tableau() Tableau = ThisComponent.NamedRanges.ElementNames For i = LBound (Tableau) To UBound (Tableau) MsgBox Tableau(i) Next i End sub |
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | Sub RecupererInformationsNom Dim Resultat As String Dim oNom As Object Dim Plages As Object, oEnum As Object, Cellule As Object 'Définit le premier nom dans le classeur oNom = ThisComponent.NamedRanges.getByIndex(0) Resultat = "Nom: " & oNom.Name & CHR(10) & _ "Référence: " & oNom.Content & CHR(10) & _ "Index feuille: " & oNom.ReferencePosition.Sheet & CHR(10) & _ "Nom feuille: " & oNom.ReferredCells.SpreadSheet.Name & CHR(10) & _ "Première colonne: " & oNom.ReferredCells.RangeAddress.StartColumn + 1 & CHR(10) & _ "Dernière colonne: " & oNom.ReferredCells.RangeAddress.EndColumn + 1 & CHR(10) & _ "Première ligne" & oNom.ReferredCells.RangeAddress.StartRow + 1 & CHR(10) & _ "Dernière ligne: " & oNom.ReferredCells.RangeAddress.EndRow + 1 MsgBox Resultat '--- Boucle sur les cellules du nom --- ' 'Nota: Ne renvoie rien si les cellules sont vides. ' Plages = ThisComponent.createInstance("com.sun.star.sheet.SheetCellRanges") Plages.insertByName("", oNom.ReferredCells) oEnum = Plages.Cells.CreateEnumeration While oEnum.hasMoreElements Cellule = oEnum.NextElement MsgBox Cellule.String Wend End Sub |
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | Sub SuppressionContenuCelluleNommee Dim oNom As Object 'Définit le premier nom dans le classeur oNom = ThisComponent.NamedRanges.getByIndex(0) 'Supprime le contenu de la cellule/plage nommée oNom.ReferredCells.clearContents(com.sun.star.sheet.CellFlags.VALUE +_ com.sun.star.sheet.CellFlags.DATETIME +com.sun.star.sheet.CellFlags.STRING +_ com.sun.star.sheet.CellFlags.ANNOTATION +com.sun.star.sheet.CellFlags.FORMULA) 'Description du contenu supprimé: '------------------------------- 'com.sun.star.sheet.CellFlags.VALUE: Valeurs numériques 'com.sun.star.sheet.CellFlags.DATETIME: Dates et Heures 'com.sun.star.sheet.CellFlags.STRING: Texte 'com.sun.star.sheet.CellFlags.ANNOTATION: Annotations(Commentaires) 'com.sun.star.sheet.CellFlags.FORMULA: Formules End Sub |
Pour supprimer un nom spécifique:
Code vb : | Sélectionner tout |
1 2 3 4 | Sub SupprimerNom 'Supprime un nom appelé "TestNom1" ThisComponent.NamedRanges.removeByName("TestNom1") End Sub |
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 | Sub SupprimerTousLesNoms Dim i As Integer Dim Cible As String 'Boucle sur les noms du classeur For i = ThisComponent.NamedRanges.count - 1 To 0 Step -1 'Récupére le nom Cible = ThisComponent.NamedRanges.getByIndex(i).name 'Suppression ThisComponent.NamedRanges.removeByName(Cible) next i End Sub |
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.