[Résolu][Calc] Si vide : attribuer valeur cellule précédente

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: 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 !
ClaiB
Fraîchement OOthentifié
Messages : 2
Inscription : 09 août 2021 14:45

[Résolu][Calc] Si vide : attribuer valeur cellule précédente

Message par ClaiB »

Bonjour,

Je débute en macro et ne parviens pas à arriver au résultat voulu...
Dans ma colonne 'B', si une cellule est vide, alors je souhaiterais lui attribuer la valeur de la cellule précédente.
Pour l'instant j'ai écrit ceci, mais ça ne fonctionne pas...

Code : Tout sélectionner

Sub Macro ()
Dim ocode_comm      'nom de ma feuille
Dim X as integer
Dim macellule as object
ocode_comm = ThisComponent.getSheets().getByName("code_comm")
For X= 2 to 386
macellule = ocode_comm.getCellByPosition(1,X)
If macellule.Type=com.sun.star.table.CellContentType.EMPTY Then
macellule(1,X).value=macellule(1,X-1).value
end if
next X
end Sub
J'ai cherché dans le forum des pistes, mais je n'ai rien trouvé. Auriez vous une idée pour résoudre mon problème?
Merci!
Bonne journée,
Clai.
OpenOffice 2.4 sous Windows XP
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12230
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Re: Si cellule vide->lui attribuer valeur de cellule précéde

Message par Bidouille »

Bonjour,

Cette section a des règles très précises que vous devez obligatoirement suivre pour obtenir de l'aide. C'est indiqué dans le cadre rouge en haut de la page.

Il est demandé aux auteurs de faire précéder le titre de leur question d'une balise adéquate. Ce balisage est extrêmement important car il permet d'avoir une base de connaissance optimum en cas de recherche. Avez-vous remarqué comment étaient les autres questions postées ?

Lisez ce fil pour savoir quelle balise utiliser : http://forum.openoffice.org/fr/forum/su ... html#27295

N'oubliez pas que le terme "Macro" ou "OpenOffice" ne doit pas être employé car il est implicite. Essayer de synthétiser au mieux ce que vous cherchez à faire.

Un titre accrocheur vous permettra d'une part d'être aidé plus rapidement et d'autre part, d'enrichir notre base de connaissances.

Nous l'avons fait pour vous cette fois-ci mais lors de votre prochaine question, nous vous remercions de le faire vous-même sous peine de voir votre sujet verrouillé.
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25181
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Si vide : attribuer valeur cellule précédente

Message par Dude »

Salut,

Comme toujours, qu'appelles-tu "valeur" ?
Une cellule pouvant contenir une chaîne, un nombre ou une formule, il faut donc traiter chaque cas différemment.
ClaiB a écrit :mais ça ne fonctionne pas.
Cette phrase n'aide pas à comprendre ce que tu fais.
Si tu as parcouru un peu ce forum, tu as vu qu'on réclame systématiquement un document afin de reproduire le problème.
Avatar de l’utilisateur
Noonours
PassiOOnné
PassiOOnné
Messages : 501
Inscription : 11 mai 2013 00:11
Localisation : Aix en Provence

Re: [Calc] Si vide : attribuer valeur cellule précédente

Message par Noonours »

Bonjour
Dude a écrit :on réclame systématiquement un document afin de reproduire le problème
+1 :super:
En partant de ton code, et sans fichier test, je m'essaye à cette solution:

Code : Tout sélectionner

Sub Macro ()
Dim ocode_comm  As Object    'nom de ma feuille
Dim X as integer
Dim macellule as object
ocode_comm = ThisComponent.getSheets().getByName("code_comm")
For X= 2 to 386
macellule = ocode_comm.getCellByPosition(1,X)
If macellule.Type=com.sun.star.table.CellContentType.EMPTY Then
'macellule(1,X).value=macellule(1,X-1).value  '<- c'est ici que le bât blesse ;)
'à remplacer par:
ocode_comm.getCellByPosition(1,X).value=ocode_comm.getCellByPosition(1,X-1).value 
end if
next X
end Sub
Cordialement,
Noonours procrastinateur perfectionniste: "Je fais rien, mais demain je l'ferai mieux"

Pour obtenir la réponse la plus précise possible, VEUILLEZ JOINDRE UN FICHIER

LibO 7.6.5.2 Stable et OpenOffice 4.1.15 sous Windows 10
ClaiB
Fraîchement OOthentifié
Messages : 2
Inscription : 09 août 2021 14:45

[Résolu] [Calc] Si vide : attribuer valeur cellule précédent

Message par ClaiB »

Bonjour,
Super, cela fonctionne! Merci beaucoup pour votre aide.

Bonne journée.
Dernière modification par ClaiB le 10 août 2021 07:40, modifié 1 fois.
OpenOffice 2.4 sous Windows XP
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9255
Inscription : 28 août 2010 08:45

Re: [Calc] Si vide : attribuer valeur cellule précédente

Message par micmac »

Bonjour,

Problème résolu ?

Il est d'usage
  1. d'ajouter manuellement au début du titre de votre premier message la balise [Résolu] (avec un R majuscule et sans oublier le e accentué, le tout entre crochets [ ])
  2. et de cocher l'icône Image
Image
Adaptez la longueur du titre à 60 caractères maximum, balises comprises.
Dans votre signature il y a écrit : OpenOffice 2.4 sous Windows XP
Votre signature fait mention d'une version d'OpenOffice qui n'est plus maintenue.
Si c'est une obligation ou un choix mentionnez-le dans votre signature.
Si c'est une version de LibreOffice que vous n'avez pas pu entrer, essayez de nouveau.

Connaître la version de Apache OpenOffice (AOO) ou LibreOffice (LibO) installée

Afin de profiter des dernières améliorations, il est fortement recommandé d'être à jour de la dernière version stable

Dans votre signature il est nécessaire d'indiquer :
  1. la version exacte de AOO ou LibO (AOO 4.1.10, LibO 7.0.6 par exemple) ;
  2. la version exacte du système d'exploitation (Windows XP SP3, Vista SP2, Windows 7 SP1, Win 8.1, Win 10, Ubuntu 20.04, macOS 11.4 par exemple).
Accès direct à votre signature pour la corriger.

Cordialement
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac