Open Office probleme avec macro svp
noob10*99
Messages postés
12
Date d'inscription
Statut
Membre
Dernière intervention
-
noob10*99 Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
noob10*99 Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
Bonjour j'ai également poster ce message dans "programmation" car je ne sais pas trop dans quel coin caser ce sujet...
j'ai de légère base en VBA sous Excel mais maintenant on a Open Office et je dois dans un tableau, copier la valeur écrite dans la colonne B de la feuille 1 et la coller dans la colonne C de la feuille 2 mais à condition que le nom écrit dans la colonne C de la feuille 1 soit identique au nom dans la colonne B de la feuille 2
J ai commencé à écrire ce code avec l'aide d'informations trouvés sur internet :
Sub test1230123
Dim monDocument As Object
Dim mesFeuilles As Object 'Désigne les feuilles
Dim feuilleSource As Object 'Désigne la feuille source
Dim feuilleDestination As Object 'Désigne la feuille destination
Dim i As Integer
monDocument = thisComponent 'il s'agit du document actif sur lequel on travaille
mesFeuilles = monDocument.Sheets 'mesFeuilles est la Feuille1 du document actif
feuilleSource = mesFeuilles.getByName("Feuille1")'Feuille source qui contient les données à copier
feuilleDestination = mesFeuilles.getByName("Feuille2") 'Désignation de la feuille de destination si on veut la désigner
for i = 1 to 1000
if Sheet(Feuille1).getCellByPosition("A").Value = heet(Feuille2).getCellByPosition("B").Value then
Sheet(Feuille1).getCellByPosition("B").Value = Sheet(Feuille2).getCellByPosition("C").Value
End if
next i
End Sub
Mais à la ligne souligné un message d'erreur affiche : "sous procédure ou procédure de fonction non définies"
Pouvez vous m'aider svp c'est très important
merci
j'ai de légère base en VBA sous Excel mais maintenant on a Open Office et je dois dans un tableau, copier la valeur écrite dans la colonne B de la feuille 1 et la coller dans la colonne C de la feuille 2 mais à condition que le nom écrit dans la colonne C de la feuille 1 soit identique au nom dans la colonne B de la feuille 2
J ai commencé à écrire ce code avec l'aide d'informations trouvés sur internet :
Sub test1230123
Dim monDocument As Object
Dim mesFeuilles As Object 'Désigne les feuilles
Dim feuilleSource As Object 'Désigne la feuille source
Dim feuilleDestination As Object 'Désigne la feuille destination
Dim i As Integer
monDocument = thisComponent 'il s'agit du document actif sur lequel on travaille
mesFeuilles = monDocument.Sheets 'mesFeuilles est la Feuille1 du document actif
feuilleSource = mesFeuilles.getByName("Feuille1")'Feuille source qui contient les données à copier
feuilleDestination = mesFeuilles.getByName("Feuille2") 'Désignation de la feuille de destination si on veut la désigner
for i = 1 to 1000
if Sheet(Feuille1).getCellByPosition("A").Value = heet(Feuille2).getCellByPosition("B").Value then
Sheet(Feuille1).getCellByPosition("B").Value = Sheet(Feuille2).getCellByPosition("C").Value
End if
next i
End Sub
Mais à la ligne souligné un message d'erreur affiche : "sous procédure ou procédure de fonction non définies"
Pouvez vous m'aider svp c'est très important
merci
A voir également:
- Open Office probleme avec macro svp
- Open office gratuit - Télécharger - Suite bureautique
- Microsoft office - Guide
- Cette technique secrète permet d'avoir Windows et Microsoft Office gratuitement et à vie - Accueil - Bureautique
- Web office - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
11 réponses
Pardon j 'ai oublié de surligné c'est la ligne après le for :
if Sheet(Feuille1).getCellByPosition("A").Value = heet(Feuille2).getCellByPosition("B").Value then
if Sheet(Feuille1).getCellByPosition("A").Value = heet(Feuille2).getCellByPosition("B").Value then
Mais sinon dans le langage "général" la macro ressemble bien à ça?
et si c'est un problème de méthode laquelle utiliser?
et si c'est un problème de méthode laquelle utiliser?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je viens d'essayer mais cela ne fonctionne pas de longues recherches s'annoncent mais merci d'avoir essayé
j ai mis i au moment du if pour que celui ci se fasse ligne par ligne donc que la macro regarde la concordance des noms sur une ligne puis elle recommence sur celle d'après. Mais cette idée de i viens de moi donc j'en suis pas sûr à 100% mais on faisait des trucs comme sa quand on utilisait if en cours
j ai changé :
if feuilleSource.Range("A").Value = feuilleDestination.Range("B").Value then
feuilleSource.Range("B").Value = feuilleDestination.Range("C").Value
mais maintenant il met met comme erreur "propriété ou méthode non trouvée : range". Peu être qu'open office ne connait pas Range comme Excel?
if feuilleSource.Range("A").Value = feuilleDestination.Range("B").Value then
feuilleSource.Range("B").Value = feuilleDestination.Range("C").Value
mais maintenant il met met comme erreur "propriété ou méthode non trouvée : range". Peu être qu'open office ne connait pas Range comme Excel?
Sa avance plus d'erreurs s'affichent mais maintenant dans la feuille 1 colonne B (là où il y a les données à copier) j ai des zero dans toute la colonne ?!
j ai permuter
feuilleSource.Range("B").Value = feuilleDestination.Range("C").Value
en
feuilleDestination.getCellByPosition(2, i).Value = feuilleSource.getCellByPosition(1, i).Value
et les valeurs des trois premiers noms s'affichent bien mais cela fais juste un copier/coller classique la macro ne prend pas compte des noms différent et puis les noms ne sont pas situés sur les même lignes et les valeurs s'affichent sur les trois premieres... sa doit etre compliqué à comprendre sans le fichier
feuilleSource.Range("B").Value = feuilleDestination.Range("C").Value
en
feuilleDestination.getCellByPosition(2, i).Value = feuilleSource.getCellByPosition(1, i).Value
et les valeurs des trois premiers noms s'affichent bien mais cela fais juste un copier/coller classique la macro ne prend pas compte des noms différent et puis les noms ne sont pas situés sur les même lignes et les valeurs s'affichent sur les trois premieres... sa doit etre compliqué à comprendre sans le fichier
Sub test1230123
Dim monDocument As Object
Dim mesFeuilles As Object 'Désigne les feuilles
Dim feuilleSource As Object 'Désigne la feuille source
Dim feuilleDestination As Object 'Désigne la feuille destination
Dim i As Integer
Dim Noms As Variant
monDocument = thisComponent 'il s'agit du document actif sur lequel on travaille
mesFeuilles = monDocument.Sheets 'mesFeuilles est la Feuille1 du document actif
feuilleSource = mesFeuilles.getByName("Feuille1")'Feuille source qui contient les données à copier
feuilleDestination = mesFeuilles.getByName("Feuille2") 'Désignation de la feuille de destination si on veut la désigner
Noms(1)=("0, i")
Noms(2)=("1, i")
for i = 1 to 700
feuilleDestination.setString(Noms (i)) = feuilleSource.setString(Noms (i))
if Nom(i) <> "" then
feuilleDestination.getCellByPosition(2, i).setValue(feuilleSource(1, i))
end if
next i
End Sub
par rapport au site que tu m as transmis j'ai rectifié un peu la fin du code mais maintenant comme message d'erreur " attendu : Then" à la ligne souligné alors qu'il y a le then je ne comprends pas trop