[Résolu][Calc] Copier plage selon date dans une autre feuille
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 !
-
- NOOuvel adepte
- Messages : 19
- Inscription : 06 juil. 2023 17:43
[Résolu][Calc] Copier plage selon date dans une autre feuille
Bonjour tout le monde je suis nouveau sur le forum
Je souhaiterai copier une plage de cellule (feuille Liste) dans une autre feuille (Recapitulatif) mais que j'ai une boite de dialogue quand je lance la macro qui me demande le numéro du trimestre, et si par exemple je saisi 1, cela correspond à janvier à fin mars (le 1er trimestre) et que ca me copie donc les lignes de la feuille "Liste" dont la date est spécifiée en colonne B corresponde au trimestre selectionné.
Et que quand je relance la macro je puisse choisir par exemple le second trimestre et que ca m'ajoute les résultats quelques lignes en dessous sous le résultat du 1er trimestre dans la feuille Recapitulatf
Vous trouverez le fichier en piéce jointe j'ai bien essayé quelques formules mais je suis bloqué
merci d'avanc pour votre aide
Je souhaiterai copier une plage de cellule (feuille Liste) dans une autre feuille (Recapitulatif) mais que j'ai une boite de dialogue quand je lance la macro qui me demande le numéro du trimestre, et si par exemple je saisi 1, cela correspond à janvier à fin mars (le 1er trimestre) et que ca me copie donc les lignes de la feuille "Liste" dont la date est spécifiée en colonne B corresponde au trimestre selectionné.
Et que quand je relance la macro je puisse choisir par exemple le second trimestre et que ca m'ajoute les résultats quelques lignes en dessous sous le résultat du 1er trimestre dans la feuille Recapitulatf
Vous trouverez le fichier en piéce jointe j'ai bien essayé quelques formules mais je suis bloqué
merci d'avanc pour votre aide
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libreoffice 7.5.4.2 (X86_64) Linux
-
- IdOOle de la suite
- Messages : 25602
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Calc] Copier plage selon date dans une autre feuille
Salut,
Ce sera autrement plus complexe.
Le plus simple est d'utiliser un filtre et d'en copier le résultat sur une autre feuille.
Comme cette question est passée au moins 1.000 fois en 15 ans...
viewtopic.php?f=29&t=47388
Si tu n'y arrives pas via formule, pourquoi vouloir t'orienter vers des macros ?
Ce sera autrement plus complexe.
Le plus simple est d'utiliser un filtre et d'en copier le résultat sur une autre feuille.
Comme cette question est passée au moins 1.000 fois en 15 ans...
viewtopic.php?f=29&t=47388
-
- PassiOOnné
- Messages : 516
- Inscription : 18 juin 2017 05:43
- Localisation : 976
Re: [Calc] Copier plage selon date dans une autre feuille
Bonjour Happy19, le forum
Voyez dans le fichier joint, si la solution par formule peut vous convenir
Choisissez le trimestre à afficher en "Recapitulatif.F1"
Voyez dans le fichier joint, si la solution par formule peut vous convenir
Choisissez le trimestre à afficher en "Recapitulatif.F1"
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.5.9.2.M3 (x64) FR-YT 01/06/24
OS : Windows 11.0
OS : Windows 11.0
-
- ManitOOu
- Messages : 3031
- Inscription : 02 juil. 2014 17:25
Re: [Calc] Copier plage selon date dans une autre feuille
Bonjour,
T'as changé de pseudo ?
Je t'ai proposé une solution clé en main dans ce fil : viewtopic.php?p=368384#p368384
Tu nous présentes exactement le même fichier curieux.
Ton fichier : Et celui de l'autre fil :
T'as changé de pseudo ?
Je t'ai proposé une solution clé en main dans ce fil : viewtopic.php?p=368384#p368384
Tu nous présentes exactement le même fichier curieux.
Ton fichier : Et celui de l'autre fil :
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
-
- NOOuvel adepte
- Messages : 19
- Inscription : 06 juil. 2023 17:43
Re: [Calc] Copier plage selon date dans une autre feuille
Bonjour
et merci à tous pour vos réponses, j'avais déja fait quelque chose de similaire avec les formules mais c'est plus pratique avec les macros car je voudrais à la fin du 1er trimestre lancer la macro et pouvoir modifier les valeurs dans la feuille Récapitulatif sans que ca impacte la feuille Liste et surtout que quand je relance la macro à la fin du 2eme trimestre ca me rajoute le résultat aprés et ainsi de suite pour les autres trilestres
Je vais étudier le fichier de psylo24 pour voir si j'arrive à en faire quelque chose mais ce qu'il a demandé parait beaucoup plus complexe car c'est sur plusieurs feuilles et la macro est assez complexe pour un débutant comme moi
je vous tiens informé si j'arrive à faire quelque chose...ou si je n'y arrive vraiment pas
et merci à tous pour vos réponses, j'avais déja fait quelque chose de similaire avec les formules mais c'est plus pratique avec les macros car je voudrais à la fin du 1er trimestre lancer la macro et pouvoir modifier les valeurs dans la feuille Récapitulatif sans que ca impacte la feuille Liste et surtout que quand je relance la macro à la fin du 2eme trimestre ca me rajoute le résultat aprés et ainsi de suite pour les autres trilestres
Je vais étudier le fichier de psylo24 pour voir si j'arrive à en faire quelque chose mais ce qu'il a demandé parait beaucoup plus complexe car c'est sur plusieurs feuilles et la macro est assez complexe pour un débutant comme moi
je vous tiens informé si j'arrive à faire quelque chose...ou si je n'y arrive vraiment pas
Libreoffice 7.5.4.2 (X86_64) Linux
-
- NOOuvel adepte
- Messages : 19
- Inscription : 06 juil. 2023 17:43
Re: [Calc] Copier plage selon date dans une autre feuille
bobjour
aprés avoir regardé et essayé d'adapter la macro je n'y arrive pas, quelqu'un pourrait m'aider ?
merci à vous
aprés avoir regardé et essayé d'adapter la macro je n'y arrive pas, quelqu'un pourrait m'aider ?
merci à vous
Libreoffice 7.5.4.2 (X86_64) Linux
-
- RespOOnsable forum
- Messages : 12457
- Inscription : 08 nov. 2005 16:23
- Localisation : Caen, France
Re: [Calc] Copier plage selon date dans une autre feuille
Bonjour,
Comment joindre un fichier au format ODS
Pensez également à dépersonnaliser le fichier joint.
Cette seule phrase n'aide pas à vous aider.
Comment joindre un fichier au format ODS
Pensez également à dépersonnaliser le fichier joint.
-
- NOOuvel adepte
- Messages : 19
- Inscription : 06 juil. 2023 17:43
Re: [Calc] Copier plage selon date dans une autre feuille
Bonjour
Pour être plus précis, je n'arrive pas à faire la partie ou ca me copie uniquement les lignes dont la date fait parti du X trimestre.
Cela vous aide plus à la compréhension de mon probméme ?
merci d'avance pour votre aide
Pour être plus précis, je n'arrive pas à faire la partie ou ca me copie uniquement les lignes dont la date fait parti du X trimestre.
Cela vous aide plus à la compréhension de mon probméme ?
merci d'avance pour votre aide
Libreoffice 7.5.4.2 (X86_64) Linux
-
- ManitOOu
- Messages : 3031
- Inscription : 02 juil. 2014 17:25
Re: [Calc] Copier plage selon date dans une autre feuille
Bonjour à tous
Monsieur PsyloHappy, ton fichier exemple contient une feuille source avec des entêtes de colonnes différents de la feuille récapitulatif C'est quoi le résultat attendu ?
Monsieur PsyloHappy, ton fichier exemple contient une feuille source avec des entêtes de colonnes différents de la feuille récapitulatif C'est quoi le résultat attendu ?
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
-
- NOOuvel adepte
- Messages : 19
- Inscription : 06 juil. 2023 17:43
Re: [Calc] Copier plage selon date dans une autre feuille
Bonjour
J'ai modifié la 1ere ligne qui en effet ne correspondait pas au niveau nom.
J'ai mis dans la feuille Récapitulatif le résultat attendu une fois qu'on a lancé la macro pour chaque trimestre
Merci du temps pris en tout cas
J'ai modifié la 1ere ligne qui en effet ne correspondait pas au niveau nom.
J'ai mis dans la feuille Récapitulatif le résultat attendu une fois qu'on a lancé la macro pour chaque trimestre
Merci du temps pris en tout cas
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libreoffice 7.5.4.2 (X86_64) Linux
-
- IdOOle de la suite
- Messages : 25602
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Calc] Copier plage selon date dans une autre feuille
Il n'y a aucune macro dans le 2nd document que tu fournis.
Comme dit plus haut, si tu ne veux pas t'investir dans la programmation, mieux vaut ne pas en faire.
En utilisant l'extension zBasic, tu auras un code plus simple à comprendre :
Comme dit plus haut, si tu ne veux pas t'investir dans la programmation, mieux vaut ne pas en faire.
En utilisant l'extension zBasic, tu auras un code plus simple à comprendre :
Code : Tout sélectionner
Sub Main
GlobalScope.BasicLibraries.loadLibrary("zBasic")
Dim oFiltre as variant
oFiltre = zFiltre.Demarre("Liste", "A1:E7")
zFiltre.Parametre(oFiltre, "entete", "O")
'Le 1er trimestre va du 01/01/2023 au 31/03/2023
zFiltre.Colonne(oFiltre, 2, "", 5, "O", DateSerial(2023, 01, 01))
zFiltre.Colonne(oFiltre, 2, "ET", 7, "O", DateSerial(2023, 03, 31))
zFeuille.Cree("Résultat")
zFiltre.Execute(oFiltre, "Résultat", "A1")
End sub
-
- NOOuvel adepte
- Messages : 19
- Inscription : 06 juil. 2023 17:43
Re: [Calc] Copier plage selon date dans une autre feuille
Salut,
Merci beaucoup pour ton aide, cependnant j'ai les erreurs suivantes :
encore merci
Merci beaucoup pour ton aide, cependnant j'ai les erreurs suivantes :
- Cette feuille existe déjà
Aucun critère déclaré via zFiltre.Colonne
encore merci
Libreoffice 7.5.4.2 (X86_64) Linux
-
- IdOOle de la suite
- Messages : 25602
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Calc] Copier plage selon date dans une autre feuille
Forcément, si la feuille existe déjà, il faut la supprimer.
Voir la commande zFeuille.Supprime
Si tu n'arrives même pas à comprendre ça, il vaut mieux renoncer.
Le 2nd document que tu fournis fonctionne avec le code que je publie.
Donc, j'émets des doutes sur ce que tu boutiques réellement.
-
- NOOuvel adepte
- Messages : 19
- Inscription : 06 juil. 2023 17:43
Re: [Calc] Copier plage selon date dans une autre feuille
Ben oui mais meme si la feuille n'existe pas ya une erreur (Aucun critère déclaré via zFiltre.Colonne) donc bon .
Je fais juste un copier coller de ton code et je te partage mon résultat, je n'ai rien fait de plus....
Je fais juste un copier coller de ton code et je te partage mon résultat, je n'ai rien fait de plus....
Libreoffice 7.5.4.2 (X86_64) Linux
-
- IdOOle de la suite
- Messages : 25602
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Calc] Copier plage selon date dans une autre feuille
Ici, on n'a pas de boule de cristal donc bon.
Fournis un 3e document avec la macro.
Fournis un 3e document avec la macro.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
-
- NOOuvel adepte
- Messages : 19
- Inscription : 06 juil. 2023 17:43
Re: [Calc] Copier plage selon date dans une autre feuille
Bonjour
Voici le document avec la macro, si d'autres personnes peuvent me dire si ca marche ou non chez eux....
J'ai également testé un autre code zBasic et j'ai la meme erreur, comme si ca venait de mon OS ou libreoffice
Sinon j'avais essayé de faire la macro direct en ooBasic, mais je n'arrive pas à faire mon filtre de date comprise entre X date et X date, voici la macro
Merci
Voici le document avec la macro, si d'autres personnes peuvent me dire si ca marche ou non chez eux....
J'ai également testé un autre code zBasic et j'ai la meme erreur, comme si ca venait de mon OS ou libreoffice
Sinon j'avais essayé de faire la macro direct en ooBasic, mais je n'arrive pas à faire mon filtre de date comprise entre X date et X date, voici la macro
Code : Tout sélectionner
Sub Copier ()
Dim monDocument As Object
'Pour désigner les feuilles
Dim mesFeuilles As Object
'Pour désigner la feuille source
Dim feuilleSource As Object
'Pour désigner la feuille destination
Dim feuilleDestination As Object
'Pour désigner les cellules sources
Dim celluleSource As Object
'Pour désigner la cellule destination
Dim zoneDestination As Object
'Pour désigner la feuille active
Dim FeuilleActive As Object
monDocument = thisComponent
mesFeuilles = monDocument.Sheets
'Feuille source qui contient les connées à copier
feuilleSource = mesFeuilles.getByName("Liste")
'Zone des cellules à copier
celluleSource = feuilleSource.getCellRangeByName("A1:E7")
'Désignation de la feuille destination
feuilleDestination = mesFeuilles.getByName("Recap")
'Je désigne la cellule où la copie va commencer
zoneDestination = feuilleDestination.getCellRangeByName("A1")
'Là je procéde à la copie
feuilleDestination.copyRange(zoneDestination.CellAddress, celluleSource.RangeAddress)
End Sub
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libreoffice 7.5.4.2 (X86_64) Linux
-
- IdOOle de la suite
- Messages : 25602
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Calc] Copier plage selon date dans une autre feuille
Fournis donc le document avec ce code que je l'examine.
Parce que chez moi, ça fonctionne parfaitement.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
-
- NOOuvel adepte
- Messages : 19
- Inscription : 06 juil. 2023 17:43
Re: [Calc] Copier plage selon date dans une autre feuille
Bonjour
avec un peu de retard voici le fichier, mais comme j'ai spécifié dans un message plus haut, j'ai essayé les exemples qu'il y a sur leur site et les commandes de base zBasic ne fonctionne pas sur mon libre office
Voici la version d'ailleurs
Version: 7.5.5.2 (X86_64) / LibreOffice Community
Build ID: 50(Build:2)
Calc: threaded
Je ne sais pas comment tu arrives à faire des petites vidéos dans tes messages, je pourrais te montrer en live l'erreur que je rencontre
merci
avec un peu de retard voici le fichier, mais comme j'ai spécifié dans un message plus haut, j'ai essayé les exemples qu'il y a sur leur site et les commandes de base zBasic ne fonctionne pas sur mon libre office
Voici la version d'ailleurs
Version: 7.5.5.2 (X86_64) / LibreOffice Community
Build ID: 50(Build:2)
Calc: threaded
Je ne sais pas comment tu arrives à faire des petites vidéos dans tes messages, je pourrais te montrer en live l'erreur que je rencontre
merci
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libreoffice 7.5.4.2 (X86_64) Linux
-
- IdOOle de la suite
- Messages : 25602
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
-
- NOOuvel adepte
- Messages : 19
- Inscription : 06 juil. 2023 17:43
Re: [Calc] Copier plage selon date dans une autre feuille
Ahh quelle bonne humeur sur ce forum, j'adore ^^ c'est dingue d'être aussi peu aimable et agressif.
En effet le code n'était pas le même sur le dernier fichier que je t'ai envoyé car j'ai essayé de tester des choses, essayé de comprendre pourquoi ca ne marchait pas, désolé je m'en excuse !
Tu sais je ne me suis pas amusé à recopier le code, on m'a appris le copier coller à l'école
Mais je te joins le fichier avec la macro zBasic que vous m'avez fourni, tu trouveras le fichier en piéce jointe de ce message. Mais il n’empêche que chez moi ça ne fonctionne pas.
En te souhaitant une bonne journée
En effet le code n'était pas le même sur le dernier fichier que je t'ai envoyé car j'ai essayé de tester des choses, essayé de comprendre pourquoi ca ne marchait pas, désolé je m'en excuse !
Tu sais je ne me suis pas amusé à recopier le code, on m'a appris le copier coller à l'école
Mais je te joins le fichier avec la macro zBasic que vous m'avez fourni, tu trouveras le fichier en piéce jointe de ce message. Mais il n’empêche que chez moi ça ne fonctionne pas.
En te souhaitant une bonne journée
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libreoffice 7.5.4.2 (X86_64) Linux
-
- IdOOle de la suite
- Messages : 25602
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Calc] Copier plage selon date dans une autre feuille
Cette phrase n'aide pas à comprendre. Mets nous des copies écran de ce qui s'affiche.
Une avant et une après l'exécution de la macro.
Autre chose :
Cette version est donnée comme expérimentale et non recommandée sur ce forum.
Lire ceci : viewtopic.php?t=49867
Fais déjà le test avec une version stable.
Et sans doute que si tu faisais un minimum d'effort, ce serait moins agaçant de t'aider pour un problème qui ne nous concerne pas.
Par exemple, ta signature indique Linux qui n'est pas assez précis. Il faut donner a minima la distribution que tu utilises.
-
- NOOuvel adepte
- Messages : 19
- Inscription : 06 juil. 2023 17:43
[Résolu][Calc] Copier plage selon date dans une autre feuille
Bonjour
Par rapport au post que j'ai précédemment créé viewtopic.php?p=374526#p374526 mais qui est vérouillé
Je tenais à vous remercier pour votre aide même si cela n'a pas résolu mon problème, je n'ai jamais réussi à faire fonctionner zBasic mais au final j'ai réussi à faire le code avec pas mal de temps et de recherches et tout ça en ooobasic.
C'est sur que beaucoup diront que mon code n'est pas optimisé mais au final il fait ce que je lui demande
Voici le code qui a résolu mon problème à savoir copier une plage de donnée en fonction du trimestre en colonne C
Sujet donc résolu
Par rapport au post que j'ai précédemment créé viewtopic.php?p=374526#p374526 mais qui est vérouillé
Je tenais à vous remercier pour votre aide même si cela n'a pas résolu mon problème, je n'ai jamais réussi à faire fonctionner zBasic mais au final j'ai réussi à faire le code avec pas mal de temps et de recherches et tout ça en ooobasic.
C'est sur que beaucoup diront que mon code n'est pas optimisé mais au final il fait ce que je lui demande
Voici le code qui a résolu mon problème à savoir copier une plage de donnée en fonction du trimestre en colonne C
Code : Tout sélectionner
Sub VerifNumMoisEtCopieOK()
Dim oFeuille as Object
dim oFeuilleDest as Object
Dim sCellule as Date
Dim MoisDeb
Dim MoisFin
Dim MyDate
dim source
dim target
dim NumTriValid as Integer
dim NumTri as Integer
Dim oDoc As Object
Dim Cellule
Dim CellSomme
Dim MyFormat
'Creation feuille temp
oDoc=ThisComponent
'Ajoute une feuille, la nomme et place l'onglet en 8eme position
oDoc.GetSheets.insertNewByName("Temp",8)
oFeuille = ThisComponent.Sheets.getbyname("Fsources")
oFeuilleDest = ThisComponent.Sheets.getByName("Temp")
NumTri = InputBox("Num trimestre (1, 2, 3, 4)")
If IsNumeric(NumTri) Then
NumTriValid = NumTri
Else
NumTriValid = 0
MsgBox "Saisir 1 2 3 ou 4"
End If
' MsgBox(NumTriValid)
Select Case NumTriValid
Case 1:
MoisDeb=1
MoisFin=3
Case 2:
MoisDeb = 4
MoisFin = 6
Case 3:
MoisDeb = 7
MoisFin=9
Case 4:
MoisDeb = 10
MoisFin = 12
End Select
dim i 'num ligne -1
dim u 'num ligne dispo dans feuille dest
u=2 'num ligne de depart dans feuille dest
for i = 1 To 300 'debut ligne
sCellule = oFeuille.getCellByPosition(2,i).Value ' colonne,ligne colonne (commence à 0) 2 = C
If Month(sCellule) >= MoisDeb And Month(sCellule) <= MoisFin Then
source = oFeuille.getCellRangeByName("A"& i+1 &":H" & i+1 )
target = oFeuilleDest.getCellRangeByName("A"&u)
oFeuille.copyRange(target.CellAddress, source.RangeAddress)
u=u+1
'MsgBox sCellule
end if
'MsgBox (i)
Next i
'oDoc=ThisComponent
'Supprime la feuille nommée "Temp"
'oDoc.GetSheets.RemoveByName("Temp")
End sub
Dernière modification par Oukcha le 07 nov. 2023 12:17, modifié 1 fois.
Raison : Ce message est désormais fusionné avec le sujet d'origine
Raison : Ce message est désormais fusionné avec le sujet d'origine
Libreoffice 7.5.4.2 (X86_64) Linux
-
- RespOOnsable modération
- Messages : 4117
- Inscription : 06 oct. 2008 08:03
Re: [Résolu][Calc] Copier plage selon date dans une autre feuille
Bonjour,
Sujets fusionnés, merci de compléter également votre signature,
Cordialement
Sujets fusionnés, merci de compléter également votre signature,
Cordialement
Pour tout savoir sur le fonctionnement de ce forum À lire avant tout !
-
- NOOuvel adepte
- Messages : 19
- Inscription : 06 juil. 2023 17:43
Re: [Résolu][Calc] Copier plage selon date dans une autre feuille
Bonjour merci d'avoir fusionné le sujet mais qu'est ce qu'elle a ma signature ?!
Libreoffice 7.5.4.2 (X86_64) Linux
-
- RespOOnsable modération
- Messages : 4117
- Inscription : 06 oct. 2008 08:03
Re: [Résolu][Calc] Copier plage selon date dans une autre feuille
Votre signature doit comporter :
1- La version exacte de AOO ou LibO (AOO 4.1.14 ou LibO 7.5.6 par exemple) ;
2- La version exacte du système d'exploitation (Windows 10, macOS Intel 13.5.2, GNU/Linux Ubuntu 22.04, par exemple).
Accès direct à votre signature pour la corriger.
Cordialement.
1- La version exacte de AOO ou LibO (AOO 4.1.14 ou LibO 7.5.6 par exemple) ;
2- La version exacte du système d'exploitation (Windows 10, macOS Intel 13.5.2, GNU/Linux Ubuntu 22.04, par exemple).
Accès direct à votre signature pour la corriger.
Cordialement.
Pour tout savoir sur le fonctionnement de ce forum À lire avant tout !