[Résolu][Calc]Supprimer le contenu d'une cellule
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 !
-
- NéOOphyte
- Messages : 195
- Inscription : 23 août 2016 09:28
[Résolu][Calc]Supprimer le contenu d'une cellule
Bonjour,
j'ai fait une petite macro qui marche assez bien et elle fait ce que je veux à un détail près :
Quand elle supprime un contenu texte, il est remplacé par un espace qui reste gênant.
Il y a-t-il un moyen de supprimer complètement le texte pour avoir une case vide ?
J'utilise des formules que je ne maîtrise pas bien, si cette macro peut-être simplifiée ou améliorée, je suis preneur.
Salut à los dodos.
Mis à jour le 20-04
j'ai fait une petite macro qui marche assez bien et elle fait ce que je veux à un détail près :
Quand elle supprime un contenu texte, il est remplacé par un espace qui reste gênant.
Il y a-t-il un moyen de supprimer complètement le texte pour avoir une case vide ?
J'utilise des formules que je ne maîtrise pas bien, si cette macro peut-être simplifiée ou améliorée, je suis preneur.
Salut à los dodos.
Mis à jour le 20-04
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par didier-56 le 02 déc. 2019 16:04, modifié 3 fois.
LibreOffice 7.1.7.2 (x64) sous Windows 10 famille
-
- ManitOOu
- Messages : 2744
- Inscription : 16 avr. 2010 13:31
Re: [Calc]Supprimer le contenu d'une cellule
Bonjour,
Comme il manque la moitié des procédures appelées par tes différents codes, bien malin qui saura te dire ce qui est à corriger
En principe, pour obtenir une cellule vide (sans espace) on utilise deux doubles quottes ("") pour une espace c'est (" ")
A+
Comme il manque la moitié des procédures appelées par tes différents codes, bien malin qui saura te dire ce qui est à corriger
En principe, pour obtenir une cellule vide (sans espace) on utilise deux doubles quottes ("") pour une espace c'est (" ")
A+
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10 et 11
AOO
LibreOffice
Debian 10 et 11
-
- NéOOphyte
- Messages : 195
- Inscription : 23 août 2016 09:28
Re: [Calc]Supprimer le contenu d'une cellule
Ok,
j'essaie ça et je reviens demain.
Pour le fichier, je peux rien maintenant, j'ai oublié ma clef.
j'essaie ça et je reviens demain.
Pour le fichier, je peux rien maintenant, j'ai oublié ma clef.
LibreOffice 7.1.7.2 (x64) sous Windows 10 famille
-
- NéOOphyte
- Messages : 195
- Inscription : 23 août 2016 09:28
Re: [Calc]Supprimer le contenu d'une cellule
On est déjà demain.
Il manque une macro qui est dans LO mais pas dans le document, je corrige ça bientôt.
Il manque une macro qui est dans LO mais pas dans le document, je corrige ça bientôt.
LibreOffice 7.1.7.2 (x64) sous Windows 10 famille
-
- NéOOphyte
- Messages : 195
- Inscription : 23 août 2016 09:28
Re: [Calc]Supprimer le contenu d'une cellule
Voici la version qui marche presque.
la sub
marche très bien. Comment la modifier pour effacer une seule case dont on connaît la ligne et la colonne ?
J’ai essayé plein de trucs qui bloquaient et suis arrivé à :
oCell.clearContents(com.sun.star.sheet.CellFlags.STRING)
qui passe bien mais n’efface pas la chaîne, J’ai aussi fait des essais avec « calcul_clear_cells » mais cette sub ne fonctionne pas si elle est appelée par une macro.
Ya aussi ça qui fait la même chose mais j'ai rien réussi à en tirer, j'arrive pas à inverser colonne et ligne. Ca fait quelques pistes mais je suis perdu.
Dans clearContentsla sub
Code : Tout sélectionner
Sub Effacer
Dim oSheet As Object, oRange As Object
oSheet = thisComponent.Sheets(0)
oRange = oSheet.getCellRangeByName("E8:N27")
oRange.clearContents(com.sun.star.sheet.CellFlags.VALUE OR _
com.sun.star.sheet.CellFlags.STRING OR _
com.sun.star.sheet.CellFlags.FORMULA)
End Sub
J’ai essayé plein de trucs qui bloquaient et suis arrivé à :
oCell.clearContents(com.sun.star.sheet.CellFlags.STRING)
qui passe bien mais n’efface pas la chaîne, J’ai aussi fait des essais avec « calcul_clear_cells » mais cette sub ne fonctionne pas si elle est appelée par une macro.
Ya aussi ça qui fait la même chose mais j'ai rien réussi à en tirer, j'arrive pas à inverser colonne et ligne. Ca fait quelques pistes mais je suis perdu.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.1.7.2 (x64) sous Windows 10 famille
-
- ManitOOu
- Messages : 2744
- Inscription : 16 avr. 2010 13:31
Re: [Calc]Supprimer le contenu d'une cellule
Bonjour,
Et puis tant qu'à abuser de ta volonté à donner des détails précis, si tu pouvais montrer comment c'est avant et après et dire un peu à quoi servent tes lignes de code.
Merci.
A+
Alors t'as essayé ça où ? Je parviens pas à le voir.didier-56 a écrit :j'essaie ça et je reviens demain.
Et pendant que t'es là, tu peux dire dans quelle cellule le problème est rencontré ?didier-56 a écrit :Voici la version qui marche presque.
Destruc_007bis.ods
Et puis tant qu'à abuser de ta volonté à donner des détails précis, si tu pouvais montrer comment c'est avant et après et dire un peu à quoi servent tes lignes de code.
Merci.
A+
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10 et 11
AOO
LibreOffice
Debian 10 et 11
-
- NéOOphyte
- Messages : 195
- Inscription : 23 août 2016 09:28
Re: [Calc]Supprimer le contenu d'une cellule
J'ai chercher double quote et rien trouvé qui marche, (quote double left & right)OOotremer971 a écrit :Bonjour,Alors t'as essayé ça où ? Je parviens pas à le voir.didier-56 a écrit :j'essaie ça et je reviens demain.Et pendant que t'es là, tu peux dire dans quelle cellule le problème est rencontré ?didier-56 a écrit :Voici la version qui marche presque.
Destruc_007bis.ods
Et puis tant qu'à abuser de ta volonté à donner des détails précis, si tu pouvais montrer comment c'est avant et après et dire un peu à quoi servent tes lignes de code.
Merci.
A+
En recalculant la cellule A10, la plage C11:F15 est balayée, les formules "ligne", "colonne" et "adresse" sont remplacées par la valeur qu'elles produisent.
Les textes qui commencent par "£" sont supprimés
La sub effacer dans clear contents, supprime complétement le contenu de toute la zone "E8:N27".
Les 2 derniers fichiers je les ai trouvés sur ce forum, ils sont proche de ce que je veux faire alors j'ai essayer de comprendre et bidouillé, mais ça m'est totalement hermétique.
Je suis comme Perceval qui doit lire une formule magique.
Merci pour ton aide.
LibreOffice 7.1.7.2 (x64) sous Windows 10 famille
-
- ManitOOu
- Messages : 2744
- Inscription : 16 avr. 2010 13:31
Re: [Calc]Supprimer le contenu d'une cellule
.didier-56 a écrit :J'ai chercher double quote et rien trouvé qui marche, (quote double left & right)
les doubles quottes sont symbolisées par le sigle ". Deux doubles quottes c'est ""
Si tu veux obtenir un cellule vide :
Code : Tout sélectionner
maCellule.String = ""
Code : Tout sélectionner
maCellule.SetString("")
A+
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10 et 11
AOO
LibreOffice
Debian 10 et 11
-
- NéOOphyte
- Messages : 195
- Inscription : 23 août 2016 09:28
Re: [Calc]Supprimer le contenu d'une cellule
Comme guillemets j'utilise ceux de la touche "3".
Si tu précises ce qui n'est pas compréhensible, je corrigerais.
Le problème c'est que je ne comprend pas tout en programmation, donc j'ai du mal à me faire comprendre.
C'est pas la 1re fois que ça m'arrive sur ce forum.
Donc merci+ de ton aide.
Si tu précises ce qui n'est pas compréhensible, je corrigerais.
Le problème c'est que je ne comprend pas tout en programmation, donc j'ai du mal à me faire comprendre.
C'est pas la 1re fois que ça m'arrive sur ce forum.
Donc merci+ de ton aide.
LibreOffice 7.1.7.2 (x64) sous Windows 10 famille
-
- ManitOOu
- Messages : 2744
- Inscription : 16 avr. 2010 13:31
Re: [Calc]Supprimer le contenu d'une cellule
La seule ligne que vois dans ton code susceptible de créer une espace est celle-ci :
on vois bien que les deux guillemets sont séparés par une espace donc comme je te le disais au début et que soit disant tu allais essayer (permet moi de douter), il faut remplacer " " par "" soit
Après j'arrête.
A+
Code : Tout sélectionner
If Left (Str, 1) = "£" Then Col_Tx (Col + 1, Lig + 1, " ")
Code : Tout sélectionner
If Left (Str, 1) = "£" Then Col_Tx (Col + 1, Lig + 1, "")
A+
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10 et 11
AOO
LibreOffice
Debian 10 et 11
-
- NéOOphyte
- Messages : 195
- Inscription : 23 août 2016 09:28
Re: [Calc]Supprimer le contenu d'une cellule
Salut,
"" sans rien entre j'ai déjà essayé, ça ne fait rien.
Dans le code ascii y'avait un caractère "null" et bacspace mais ça ne marche plus en unicode.
"" sans rien entre j'ai déjà essayé, ça ne fait rien.
Dans le code ascii y'avait un caractère "null" et bacspace mais ça ne marche plus en unicode.
LibreOffice 7.1.7.2 (x64) sous Windows 10 famille
-
- NOOuvel adepte
- Messages : 17
- Inscription : 06 janv. 2010 17:53
- Localisation : Ardennes
Re: [Calc]Supprimer le contenu d'une cellule
Bonjour,
Soit tu indiques l'adresse d'une seule cellule : getCellRangeByName("C4")
Soit tu nommes la cellule en question (NomCellule, par exemple) et tu indiques ce nom dans : getCellRangeByName("NomCellule") - ça marche avec une seule cellule ou une plage, pourvu qu'elle soit nommée.la submarche très bien. Comment la modifier pour effacer une seule case dont on connaît la ligne et la colonne ?Code : Tout sélectionner
Sub Effacer Dim oSheet As Object, oRange As Object oSheet = thisComponent.Sheets(0) oRange = oSheet.getCellRangeByName("E8:N27") oRange.clearContents(com.sun.star.sheet.CellFlags.VALUE OR _ com.sun.star.sheet.CellFlags.STRING OR _ com.sun.star.sheet.CellFlags.FORMULA) End Sub
Soit tu indiques l'adresse d'une seule cellule : getCellRangeByName("C4")
LibreOffice 6.0.3.2 sur Ubuntu 16.04 LTS ou Windows 10 Pro au travail
LibreOffice 6.3.0 sur MacOS Mojave à la maison
LibreOffice 6.3.0 sur MacOS Mojave à la maison
-
- NéOOphyte
- Messages : 195
- Inscription : 23 août 2016 09:28
Re: [Calc]Supprimer le contenu d'une cellule
Merci, la sub fonctionne mais aux premiers essais, ça bloque quand elle est appelée par une fonction.
J'essaie de voir ça rapidement.
J'essaie de voir ça rapidement.
Dernière modification par didier-56 le 10 oct. 2019 13:21, modifié 1 fois.
LibreOffice 7.1.7.2 (x64) sous Windows 10 famille
-
- NéOOphyte
- Messages : 195
- Inscription : 23 août 2016 09:28
Re: [Calc]Supprimer le contenu d'une cellule
Edition : nouvel essai.
Merci, la fonction fonctionne mais seulement quand elle est appelée sur une autre page. J'aimerais bien savoir pourquoi ou plutôt trouver une solution pour que ça change.
J'ai aussi essayé de mettre le caractère Chr (0), ça fait aussi une case apparemment vide mais celles d'à cotés ne peuvent pas déborder dessus.
En tout cas merci à ceux qui m'ont aidé.
Merci, la fonction fonctionne mais seulement quand elle est appelée sur une autre page. J'aimerais bien savoir pourquoi ou plutôt trouver une solution pour que ça change.
J'ai aussi essayé de mettre le caractère Chr (0), ça fait aussi une case apparemment vide mais celles d'à cotés ne peuvent pas déborder dessus.
En tout cas merci à ceux qui m'ont aidé.
LibreOffice 7.1.7.2 (x64) sous Windows 10 famille
-
- IdOOle de la suite
- Messages : 25181
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Calc]Supprimer le contenu d'une cellule
Salut,
Fournis un document exemple limité à cette seule problématique.
Indique précisément la cellule où on doit être et celle dont le contenu doit être effacé.
Qu'entends-tu par page ? Un classeur est constitué de feuilles et chaque feuille peut être répartie sur plusieurs pages.didier-56 a écrit :Merci, la fonction fonctionne mais seulement quand elle est appelée sur une autre page.
Fournis un document exemple limité à cette seule problématique.
Indique précisément la cellule où on doit être et celle dont le contenu doit être effacé.
-
- NéOOphyte
- Messages : 195
- Inscription : 23 août 2016 09:28
Re: [Calc]Supprimer le contenu d'une cellule
Bonjour Dude,
C’est un simulateur de train. Le train est en C16 au départ et déborde sur la cellule de droite. Il avance et va en B16. (Avec la fonction coller dans « A14 »).
Pour qu’il puisse à nouveau dépasser sur la case de droite, il faut supprimer le contenu de C16 mais avec « essai2 » dans « N14 » ça ne fonctionne pas si on exécute cette macro depuis la feuille1 (ce que j’appelle une page). C’est là que le bât blesse.
Ca marche très bien en exécutant « essai2 » dans l’éditeur (En remplaçant « C16 ») ou en l’appelant de la caz « D11 » sur la feuille2. Mais ça ne convient pas pour ce que je fais. Et ça fonctionne aussi si on ferme le document, à la réouverture C16 est vide.
Donc y’a juste un détail qui cloche. Je ne sais pas si c’est clair, j’ai beaucoup de mal en informatique. Mais ça me plaît bien, la difficulté augmente le plaisir quand ça marche enfin.
C’est un simulateur de train. Le train est en C16 au départ et déborde sur la cellule de droite. Il avance et va en B16. (Avec la fonction coller dans « A14 »).
Pour qu’il puisse à nouveau dépasser sur la case de droite, il faut supprimer le contenu de C16 mais avec « essai2 » dans « N14 » ça ne fonctionne pas si on exécute cette macro depuis la feuille1 (ce que j’appelle une page). C’est là que le bât blesse.
Ca marche très bien en exécutant « essai2 » dans l’éditeur (En remplaçant « C16 ») ou en l’appelant de la caz « D11 » sur la feuille2. Mais ça ne convient pas pour ce que je fais. Et ça fonctionne aussi si on ferme le document, à la réouverture C16 est vide.
Donc y’a juste un détail qui cloche. Je ne sais pas si c’est clair, j’ai beaucoup de mal en informatique. Mais ça me plaît bien, la difficulté augmente le plaisir quand ça marche enfin.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par didier-56 le 17 oct. 2019 07:45, modifié 1 fois.
LibreOffice 7.1.7.2 (x64) sous Windows 10 famille
-
- IdOOle de la suite
- Messages : 25181
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Calc]Supprimer le contenu d'une cellule
Ton document n'est pas fonctionnel.
Merci de fournir un mode d'emploi pas-à-pas qui ne nous fera pas perdre du temps à deviner ce qui ne va pas.
Si j'exécute la macro "Coller", j'ai une erreur : Tu ne précises pas comment on passe "A14".didier-56 a écrit :Il avance et va en B16. (Avec la fonction coller « A14 »)
Merci de fournir un mode d'emploi pas-à-pas qui ne nous fera pas perdre du temps à deviner ce qui ne va pas.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
-
- NéOOphyte
- Messages : 195
- Inscription : 23 août 2016 09:28
Re: [Calc]Supprimer le contenu d'une cellule
Salut et merci,
je viens de recharger sur l'ordi du multimédia, ça ne fonctionne pas du tout.
Pourtant la fonction coller à bien ses 2 paramètres, "C16" et "Qertvdoob "
Je modifie un peu l'explication du précédent message.
Belle journée à toi.
Un peu en marge de ça, j'ai un problème avec l'instruction suivante :
"oSheet = thisComponent.Sheets(0)"
Extraite de Turf :
https://forum.openoffice.org/fr/forum/v ... rf#p275908
Donc ça fonctionne
qund je l'utilise dans mes procédures, ça bloque et me dit que "Sheets" n'existe pas.
je viens de recharger sur l'ordi du multimédia, ça ne fonctionne pas du tout.
Pourtant la fonction coller à bien ses 2 paramètres, "C16" et "Qertvdoob "
Je modifie un peu l'explication du précédent message.
Belle journée à toi.
Un peu en marge de ça, j'ai un problème avec l'instruction suivante :
"oSheet = thisComponent.Sheets(0)"
Extraite de Turf :
https://forum.openoffice.org/fr/forum/v ... rf#p275908
Donc ça fonctionne
qund je l'utilise dans mes procédures, ça bloque et me dit que "Sheets" n'existe pas.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.1.7.2 (x64) sous Windows 10 famille
-
- IdOOle de la suite
- Messages : 25181
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Calc]Supprimer le contenu d'une cellule
Je confirme que :didier-56 a écrit :je viens de recharger sur l'ordi du multimédia, ça ne fonctionne pas du tout.
- ton document ne fonctionne pas et que j'ai la même erreur que précédemment
- je ne comprends rien à ton mode d'emploi
-
- NéOOphyte
- Messages : 195
- Inscription : 23 août 2016 09:28
Re: [Calc]Supprimer le contenu d'une cellule
Exact. Je ne comprend pas, ça marchait à la maison.
je reviendrais.
Salut à toi.
je reviendrais.
Salut à toi.
LibreOffice 7.1.7.2 (x64) sous Windows 10 famille
-
- NéOOphyte
- Messages : 195
- Inscription : 23 août 2016 09:28
Re: [Calc]Supprimer le contenu d'une cellule
Bonjour,
j'ai changé qqs détails. Mais ça ne peut fonctionner qu'avec libre office et pas avec OO.
(utilisation de "Thiscomponent.Currentcontroller.Activesheet.GetCellRangeByName (Caz).Value = Val")
Mode d'emploi
1) Placer le curseur sur "A14". Recalculer
le texte est collé dans "B16"
2) Placer le curseur sur "N14". Recalculer
C16 devrait être effacé, il ne se passe rien.
3) Placer le curseur sur "N14" de la feuille 2. Recalculer.
C16 est effacé : donc la procédure marche.
On peut initialiser en recalculant "A17".
Ma question : comment faire pour que ça marche en l'appelant de la feuille1 ?
J'espère que c'est plus clair.
Merci.
j'ai changé qqs détails. Mais ça ne peut fonctionner qu'avec libre office et pas avec OO.
(utilisation de "Thiscomponent.Currentcontroller.Activesheet.GetCellRangeByName (Caz).Value = Val")
Mode d'emploi
1) Placer le curseur sur "A14". Recalculer
le texte est collé dans "B16"
2) Placer le curseur sur "N14". Recalculer
C16 devrait être effacé, il ne se passe rien.
3) Placer le curseur sur "N14" de la feuille 2. Recalculer.
C16 est effacé : donc la procédure marche.
On peut initialiser en recalculant "A17".
Ma question : comment faire pour que ça marche en l'appelant de la feuille1 ?
J'espère que c'est plus clair.
Merci.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.1.7.2 (x64) sous Windows 10 famille
-
- IdOOle de la suite
- Messages : 25181
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Calc]Supprimer le contenu d'une cellule
Sous AOO 4.1.7, cela fonctionne : En revanche, pour ceci :didier-56 a écrit :2) Placer le curseur sur "N14". Recalculer
C16 devrait être effacé, il ne se passe rien.
Je ne vois pas comment cela pourrait fonctionner avec ta fonction HCOLLERdidier-56 a écrit :1) Placer le curseur sur "A14". Recalculer
le texte est collé dans "B16"
Code : Tout sélectionner
Function hColler (Caz$, Val As Variant, Optional Retour)
If Isnumeric (Val) Then
Thiscomponent.Currentcontroller.Activesheet.GetCellRangeByName (Caz).Value = Val
Else
Thiscomponent.Currentcontroller.Activesheet.GetCellRangeByName (Caz).String = Val
End If
If IsMissing (Retour) Then Retour = ""
hColler = Retour
End Function
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
-
- NéOOphyte
- Messages : 195
- Inscription : 23 août 2016 09:28
Re: [Calc]Supprimer le contenu d'une cellule
salut Dude,
en A14 le contenu de C16 est collé en B16.
Et en N14 le contenu de C16 devrait être effacé.
Par contre sur l'animation je ne vois pas "Qertmmmmmmmoob" se faire coller en B16. Et ici avec OO, rien ne fonctionne. Reset en A17 devrait recoller le texte en B16
J'ai fait une petite macro pour remplacer Hcoller en A17, elle modifie la valeur affichée à chaque calcul, ça permet de mieux voir si ça change ou pas. "Thiscomponent.Currentcontroller.Activesheet.GetCellRangeByName (Caz).String = Val" j'ai pris ça dans la fonction "ecrirDans", trouvée sur ce site, c'est écrit qu'elle ne fonctionne que sur LO, (https://forum.openoffice.org/fr/forum/v ... ns#p282713) et encore il me semble que ça ne marchait pas sur LO du temps où j'avais linux.
J'ai toujours travaillé sur ce programme avec winwin.
Et sinon, y'a pas une fonction qui déplacerait d'un seul coup le contenu d'une cellule dans une autre cellule ?
Merci à toi.
en A14
Code : Tout sélectionner
=HCOLLER ("B16";C16;"1 déplacer")
Et en N14
Code : Tout sélectionner
=ESSAI22 ("C16")
Par contre sur l'animation je ne vois pas "Qertmmmmmmmoob" se faire coller en B16. Et ici avec OO, rien ne fonctionne. Reset en A17 devrait recoller le texte en B16
J'ai fait une petite macro pour remplacer Hcoller en A17, elle modifie la valeur affichée à chaque calcul, ça permet de mieux voir si ça change ou pas. "Thiscomponent.Currentcontroller.Activesheet.GetCellRangeByName (Caz).String = Val" j'ai pris ça dans la fonction "ecrirDans", trouvée sur ce site, c'est écrit qu'elle ne fonctionne que sur LO, (https://forum.openoffice.org/fr/forum/v ... ns#p282713) et encore il me semble que ça ne marchait pas sur LO du temps où j'avais linux.
J'ai toujours travaillé sur ce programme avec winwin.
Et sinon, y'a pas une fonction qui déplacerait d'un seul coup le contenu d'une cellule dans une autre cellule ?
Merci à toi.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.1.7.2 (x64) sous Windows 10 famille
-
- IdOOle de la suite
- Messages : 25181
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Calc]Supprimer le contenu d'une cellule
Bon, je ne vais pas passer plus de temps sur ton problème parce qu'on boucle toujours sur les mêmes choses.
Absolument pas, relis ce que je t'écris sur ta routine HCOLLER :didier-56 a écrit :en A14 [...] le contenu de C16 est collé en B16.
En ce qui concerne ton problème d'origine, tout a été dit :Dude a écrit :Cela ne fait que transférer dans la même cellule, un contenu numérique en chaîne.
Code : Tout sélectionner
=ESSAI22 ("C16")
Cette routine supprime le contenu (chaîne, valeur et formule) de la cellule passée en argument sur la 1ere feuille :Dude a écrit :Sous AOO 4.1.7, cela fonctionne
Code : Tout sélectionner
Function Essai22$ (Optional Val$)
'Dim val
If IsMissing (val) Then Val = "c16"
Dim oSheet As Object, oRange As Object
oSheet = thisComponent.Sheets (0) ' "Feuille1"
oRange = oSheet.GetCellRangeByName (Val)
oRange.clearContents(com.sun.star.sheet.CellFlags.VALUE OR _
com.sun.star.sheet.CellFlags.STRING OR _
com.sun.star.sheet.CellFlags.FORMULA)
Essai22 = "2 effacer"
End Function
-
- NéOOphyte
- Messages : 195
- Inscription : 23 août 2016 09:28
Re: [Calc]Supprimer le contenu d'une cellule
Bonjour,
pour moi, "hColler ", si val n'est pas Isnuméric (If Isnumeric (Val) Else), colle "val", c'est à dire le texte de "C16" dans la cellule "B16". [=HCOLLER ("B16";C16;"1 déplacer")]
Dans ce cas particulier, le If est inutile, seul "Thiscomponent.Currentcontroller.Activesheet.GetCellRangeByName (Caz).String = Val" est actif.
Mais ce qui pose problème, c'est "clearcontent" qui efface "B16" mais que l'affichage n'est pas régénéré, le contenu vide de C16 empêchant le débordement de B16 sur la droite. Alors que ça fonctionne en appelant Essai22 d'une autre feuille.
J'ai essayé avec une macro enregistrée qui coupe et colle mais on ne peut pas l'appeler depuis une function.
Je vais essayer en supprimant avant de coller dans Hcoller, je reviendrais avec.
Salut et merci à toi.
pour moi, "hColler ", si val n'est pas Isnuméric (If Isnumeric (Val) Else), colle "val", c'est à dire le texte de "C16" dans la cellule "B16". [=HCOLLER ("B16";C16;"1 déplacer")]
Code : Tout sélectionner
Function hColler (Caz$, Val As Variant, Optional Retour)
If Isnumeric (Val) Then
Thiscomponent.Currentcontroller.Activesheet.GetCellRangeByName (Caz).Value = Val
Else
Thiscomponent.Currentcontroller.Activesheet.GetCellRangeByName (Caz).String = Val
End If
Mais ce qui pose problème, c'est "clearcontent" qui efface "B16" mais que l'affichage n'est pas régénéré, le contenu vide de C16 empêchant le débordement de B16 sur la droite. Alors que ça fonctionne en appelant Essai22 d'une autre feuille.
J'ai essayé avec une macro enregistrée qui coupe et colle mais on ne peut pas l'appeler depuis une function.
Je vais essayer en supprimant avant de coller dans Hcoller, je reviendrais avec.
Salut et merci à toi.
LibreOffice 7.1.7.2 (x64) sous Windows 10 famille
-
- IdOOle de la suite
- Messages : 25181
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Calc]Supprimer le contenu d'une cellule
Ceci est un autre problème qui n'a rien à voir avec celui décrit au départ.didier-56 a écrit :pour moi, "hColler "
Voilà enfin, une description du problème.didier-56 a écrit :Mais ce qui pose problème, c'est "clearcontent" qui efface "B16" mais que l'affichage n'est pas régénéré, le contenu vide de C16 empêchant le débordement de B16 sur la droite. Alors que ça fonctionne en appelant Essai22 d'une autre feuille.
Ma réponse est que ta macro Essai22 fait ce que tu lui demandes.
A savoir effacer le contenu de la cellule passée en paramètre et si ce dernier est absent, on efface C16.
Mais à aucun moment dans le code, il n'y a d'insertion de donnée.
-
- NéOOphyte
- Messages : 195
- Inscription : 23 août 2016 09:28
Re: [Calc]Supprimer le contenu d'une cellule
Salut à toi,
j'ai fait un enregistrement du bouzin.
Il est trop gros alors je l'ai mis en ligne là :
https://youtu.be/zNdofWUmK40
Et qqs petites modifs : Mais oui, c'est bien le fonctionnement restrein de clearcontent qui me pose problème.
j'ai fait un enregistrement du bouzin.
Il est trop gros alors je l'ai mis en ligne là :
https://youtu.be/zNdofWUmK40
Et qqs petites modifs : Mais oui, c'est bien le fonctionnement restrein de clearcontent qui me pose problème.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.1.7.2 (x64) sous Windows 10 famille
-
- NéOOphyte
- Messages : 195
- Inscription : 23 août 2016 09:28
[Résolu][Calc]Supprimer le contenu d'une cellule
Depuis hier ça marche.
Est-ce dû à la nouvelle version ?
Est-ce dû à la nouvelle version ?
LibreOffice 7.1.7.2 (x64) sous Windows 10 famille