PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2024 → Raz des plages nommées dans Excel
Raz des plages nommées dans Excel
Iniciado por LC, 11,dic. 2017 10:37 - 23 respuestas
Miembro registrado
628 mensajes
Popularité : +0 (16 votes)
Publicado el 11,diciembre 2017 - 10:37
bonjour à tous,
Avant chaque transfert de plages nommées dans Excel je raz les plages déjà existantes de la feuille ouverte en cours
comme ci dessous :
n est une chaîne
i = 0
POUR i = 1 A xl>>ActiveSheet>>names>>Count
n = xl>>ActiveSheet>>names[i]>>name
QUAND EXCEPTIONEXCEPTION DANS
xl>>ActiveSheet>>range(n)>>Delete
FAIRE
//RETOUR
FIN
FIN

le nommage des plages se suppriment bien mais pas le contenu des cellules, bizarre .. qu'est ce que j'ai oublié ?
Miembro registrado
628 mensajes
Popularité : +0 (16 votes)
Publicado el 11,diciembre 2017 - 19:56
Personne ?
Miembro registrado
962 mensajes
Popularité : +183 (185 votes)
Publicado el 12,diciembre 2017 - 18:00
hello,
tu peux essayer :
QUAND EXCEPTIONEXCEPTION DANS
xl>>ActiveSheet>>range(n)>>ClearContents
xl>>ActiveSheet>>range(n)>>Delete
FAIRE
//RETOUR
FIN


--
Ami calmant, J.P
Mensaje modificado, 12,diciembre 2017 - 18:01
Miembro registrado
948 mensajes
Popularité : +30 (92 votes)
Publicado el 12,diciembre 2017 - 20:02
Coucou,

Je crois que tu dois pas oublier de replace un ExceptionActive()

// Ré-active le traitement d'exception
ExceptionActive()


Je te salut en passant Jurassic Pork ;)

--
In üs we trust - Joyeux noël
Miembro registrado
628 mensajes
Popularité : +0 (16 votes)
Publicado el 12,diciembre 2017 - 21:29
Merci pour ta réponse Jurassic Pork, mais mon appli ne passe plus dans cette boucle :
POUR i = 1 A xl>>ActiveSheet>>names>>count
et donc je peux tester ta ligne en plus, je ne comprends pas pourquoi ...
Miembro registrado
628 mensajes
Popularité : +0 (16 votes)
Publicado el 12,diciembre 2017 - 21:29
Heu .. je ne connais pas cette instruction, je la code ou ? ça fait quoi ? merci encore pour ta réponse
Miembro registrado
948 mensajes
Popularité : +30 (92 votes)
Publicado el 12,diciembre 2017 - 21:34
Coucou,

^^, regarde dabs la dox, met dans dans le code qui catch l exeption ^^

--
In üs we trust - Joyeux noël
Miembro registrado
628 mensajes
Popularité : +0 (16 votes)
Publicado el 12,diciembre 2017 - 22:25
ce code (plus bas) me renvoie 0 au lieu du nombre de cellules nommées, pourtant le classeur est ouvert avant que je lance cette
instruction et il y a bien des cellules nommées ... pfuu .. que dois je faire ?
xl>>ActiveSheet>>names>>Count
Miembro registrado
948 mensajes
Popularité : +30 (92 votes)
Publicado el 12,diciembre 2017 - 23:25
Coucou,

passe en v23, et t arrete les pilotage hazardeux. ..
Dixit: Jerome

--
In üs we trust - Joyeux noël
Miembro registrado
962 mensajes
Popularité : +183 (185 votes)
Publicado el 12,diciembre 2017 - 23:32
hello,
Méfiance ! Dans Excel,il y a des plages nommées par feuille et par classeur. Pour voir ceci il faut aller dans Formules/Gestionnaire de noms, dans la colonne étendue. Si tes plages sont en étendue Classeur il faut utiliser :
POUR i = 1 A xl>>ActiveWorkBook>>Names>>Count
n=xl>>ActiveWorkBook>>Names[i]>>Name
xl>>ActiveSheet>>range(n)>>ClearContents()
xl>>ActiveSheet>>range(n)>>Delete
FIN


--
Ami calmant, J.P
Mensaje modificado, 12,diciembre 2017 - 23:33
Miembro registrado
628 mensajes
Popularité : +0 (16 votes)
Publicado el 13,diciembre 2017 - 09:47
Merci encore pour ta patience Jurassic Pork, j'ai regardé dans excel et effectivement c'est en étendue classeur, j'ai donc utiliser ton code.
Cependant j'ai une erreur d'exécution sur la ligne "ClearContent" : Range, le membre n'existe pas.
que puis je faire ?
Miembro registrado
628 mensajes
Popularité : +0 (16 votes)
Publicado el 13,diciembre 2017 - 09:49
Merci Charly Cando, je vais acheter la maj 23 avant la fin d'année, mais ça m'apportera quoi ?
il y a des nouvelles fonctions pour Excel ? Mon client utilise Excel depuis très longtemps, des tonnes de tableaux croisés dynamiques,
il ne va surement pas passer au tableur interne de Windev, même si il est très bien. c'est de cela que tu voulais parler ?
Miembro registrado
962 mensajes
Popularité : +183 (185 votes)
Publicado el 13,diciembre 2017 - 17:16
hello,
regarde bien je réutilise un activeSheet pour le range>>clearcontents avec un activeWorkbook cela ne fonctionne pas

--
Ami calmant, J.P
Miembro registrado
628 mensajes
Popularité : +0 (16 votes)
Publicado el 13,diciembre 2017 - 17:22
ben .. oui, j'ai recopié ton code et j'ai l'erreur
Miembro registrado
962 mensajes
Popularité : +183 (185 votes)
Publicado el 14,diciembre 2017 - 07:01
hello,
tu peux essayer alors :
nomPlage est une chaîne
nbPlages est un entier
i est un entier = 0
nbPlages = xl>>ActiveWorkBook>>Names>>Count
//Trace(nbPlages)
POUR i = 1 A nbPlages
nomPlage = xl>>ActiveWorkBook>>Names[i]>>Name
//Trace(nomPlage)
xl>>ActiveWorkBook>>Names[i]>>RefersToRange>>ClearContents
xl>>ActiveWorkBook>>Names[i]>>RefersToRange>>Delete
FIN


--
Ami calmant, J.P
Miembro registrado
628 mensajes
Popularité : +0 (16 votes)
Publicado el 14,diciembre 2017 - 09:24
ça ne fonctionne pas, j'ai un message d'erreur sur la ligne : xl>>ActiveWorkBook>>Names[i]>>RefersToRange>>ClearContents
"en tentant de lire la propriété <RefersToRange>... le membre demandé n'existe pas"
Miembro registrado
628 mensajes
Popularité : +0 (16 votes)
Publicado el 14,diciembre 2017 - 09:34
Pourtant lorsque j'active les traces que tu as commenté, j'ai bien le nombre de plages et le nom des plages
Miembro registrado
962 mensajes
Popularité : +183 (185 votes)
Publicado el 14,diciembre 2017 - 11:50
peut être un pb avec la version d'Excel : Moi j'utilise la version 2010

--
Ami calmant, J.P
Miembro registrado
628 mensajes
Popularité : +0 (16 votes)
Publicado el 14,diciembre 2017 - 12:13
version 2007
Miembro registrado
962 mensajes
Popularité : +183 (185 votes)
Publicado el 14,diciembre 2017 - 17:12
tu as quelle version de Windev ?
sinon tu peux essayer de mettre des parenthèses sur clearcontents et delete :
xl>>ActiveWorkBook>>Names[i]>>RefersToRange>>ClearContents()
xl>>ActiveWorkBook>>Names[i]>>RefersToRange>>Delete()

en windev 16 et excel 2010 les deux syntaxes (avec ou sans parenthèse) passent

--
Ami calmant, J.P
Miembro registrado
628 mensajes
Popularité : +0 (16 votes)
Publicado el 14,diciembre 2017 - 17:39
en fait j'ai codé ça :
r est un entier
Nb est un entier = xl>>ActiveWorkBook>>Names>>Count
POUR r = 1 A Nb
QUAND EXCEPTIONEXCEPTION DANS
xl>>range(xl>>ActiveWorkBook>>Names[r]>>Name)>>Delete
FAIRE
//
FIN
FIN

et ça fonctionne bien
Miembro registrado
628 mensajes
Popularité : +0 (16 votes)
Publicado el 14,diciembre 2017 - 17:40
je suis en windev 22,
ou peut on trouver toutes les propriétés (ole excel) que l'on peut utiliser dans windev ?
Miembro registrado
962 mensajes
Popularité : +183 (185 votes)
Publicado el 14,diciembre 2017 - 22:42
par exemple pour excel 2007 pour voir tous les objets tu peux aller sur :
https://msdn.microsoft.com/en-us/library/bb149081(v=office.12).aspx

et naviguer dans les objets pour voir les méthodes et propriétés

--
Ami calmant, J.P
Mensaje modificado, 14,diciembre 2017 - 22:43
Miembro registrado
628 mensajes
Popularité : +0 (16 votes)
Publicado el 15,diciembre 2017 - 09:28
Merci beaucoup pour ta patience et ton aide