[Résolu] [Calc] collage spécial relatif dans un classeur
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 !
-
- Fraîchement OOthentifié
- Messages : 4
- Inscription : 14 mars 2010 19:05
[Résolu] [Calc] collage spécial relatif dans un classeur
"
[Calc]
Bonjour,
Pour certains, ma question va être enfantine mais cela fait une journée que je me creuse pour trouver comment coller une plage de données
- depuis une feuille de classeur openoffice (exemple C4:Z4 dans la feuille "reference")
- sur une autre feuille QUELCONQUE (il s'agit d'un classeur annuel avec les douze mois, donc soit sur 01, 02 , 03 etc jusqu'à 12)
- et à partir de la cellule sélectionnée(active) dans la feuille sélectionnée (active)
Je désire donc que ma macro, que je me place sur la feuille 02 ou 10 ou 12, dans une cellule quelconque, qu'elle me recopie la plage C4:Z4 de la feuille "reference"
+ et le tout avec un collage spécial (en ignorant les cellules vides)
+ sans avoir à valider la boite de dialogue correspondante
+ et en n'ayant pas à répondre à un écrasement éventuel de données (car il y a des formats dans la feuille cible; donc la recopie met le message d'alerte par défaut)
UN GRAND MERCI à ceux qui peuvent m'aider"
[Calc]
Bonjour,
Pour certains, ma question va être enfantine mais cela fait une journée que je me creuse pour trouver comment coller une plage de données
- depuis une feuille de classeur openoffice (exemple C4:Z4 dans la feuille "reference")
- sur une autre feuille QUELCONQUE (il s'agit d'un classeur annuel avec les douze mois, donc soit sur 01, 02 , 03 etc jusqu'à 12)
- et à partir de la cellule sélectionnée(active) dans la feuille sélectionnée (active)
Je désire donc que ma macro, que je me place sur la feuille 02 ou 10 ou 12, dans une cellule quelconque, qu'elle me recopie la plage C4:Z4 de la feuille "reference"
+ et le tout avec un collage spécial (en ignorant les cellules vides)
+ sans avoir à valider la boite de dialogue correspondante
+ et en n'ayant pas à répondre à un écrasement éventuel de données (car il y a des formats dans la feuille cible; donc la recopie met le message d'alerte par défaut)
UN GRAND MERCI à ceux qui peuvent m'aider"
open office 3.2.0
windows Xp
windows Xp
- Dude
- IdOOle de la suite
- Messages : 25143
- Inscription : 03 mars 2006 08:45
- Localisation : 127.0.0.1
- Contact :
Re: [Calc] collage spécial relatif dans un classeur
Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
Améliorez AOO et votez pour les issues
-
- Fraîchement OOthentifié
- Messages : 4
- Inscription : 14 mars 2010 19:05
Re: [Calc] collage spécial relatif dans un classeur
Merci, j'avais vu cette proposition mais je ne désire pas changer de classeur. ça ce n'est pas grave et cela pouvait s'adapter =>Mais je ne veux pas à avoir à nommer ma destination dans la macro : je voudrais qu'elle s'applique à la feuille active au moment du déclenchement de cette macro sans compter qu'il me faudrait après
+ pouvoir faire le ok de la boite de dialogue du collage spécial et enfin
+ passer outre le message d'écrasement...
je sais, suis exigeant mais c'est pour le boulot...
Voici, à l'aide d'un classeur en pièce jointe ce que je souhaiterais (expliqué à la première feuille nommée "reference")
Par avance, Merci (et désolé pour le message, à l'attention du modérateur)
+ pouvoir faire le ok de la boite de dialogue du collage spécial et enfin
+ passer outre le message d'écrasement...
je sais, suis exigeant mais c'est pour le boulot...
Voici, à l'aide d'un classeur en pièce jointe ce que je souhaiterais (expliqué à la première feuille nommée "reference")
Par avance, Merci (et désolé pour le message, à l'attention du modérateur)
- Pièces jointes
-
- copie_relative.ods
- (15.95 Kio) Téléchargé 133 fois
Dernière modification par nulenmacro le 15 mars 2010 13:40, modifié 1 fois.
open office 3.2.0
windows Xp
windows Xp
- Dude
- IdOOle de la suite
- Messages : 25143
- Inscription : 03 mars 2006 08:45
- Localisation : 127.0.0.1
- Contact :
Re: [Calc] collage spécial relatif dans un classeur
Autres pistes trouvées avec "copie* +colle* +plage*" :nulenmacro a écrit :Mais je ne veux pas à avoir à nommer ma destination dans la macro : je voudrais qu'elle s'applique à la feuille active au moment du déclenchement de cette macro
http://user.services.openoffice.org/fr/ ... A+plage%2A
http://user.services.openoffice.org/fr/ ... A+plage%2A
http://user.services.openoffice.org/fr/ ... A+plage%2A
Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
Améliorez AOO et votez pour les issues
-
- Fraîchement OOthentifié
- Messages : 4
- Inscription : 14 mars 2010 19:05
Re: [Calc] collage spécial relatif dans un classeur
Je n'y arrive pas, désolé
Tant pis si cela ne fonctionne pas sur n'importe quelle feuille, je la renommerai (mais je ne peux pas la déplacer dans le classeur)
Dans le cas de feuilles que je renomme tous les mois, voici ce que j'avais sous excel (le code est affiché en page exemple dans le fichier joint et répété ici)
MERCI beaucoup pour votre aide car je m'arrache le reste de cheveux qu'il me reste ! Je n'arrive pas à appeler et sélectionner les feuilles
Tant pis si cela ne fonctionne pas sur n'importe quelle feuille, je la renommerai (mais je ne peux pas la déplacer dans le classeur)
Dans le cas de feuilles que je renomme tous les mois, voici ce que j'avais sous excel (le code est affiché en page exemple dans le fichier joint et répété ici)
Code : Tout sélectionner
Sub copir()
' copir Macro
' Macro enregistrée le 15/03/2010 par nulenmacro
Sheets("MODELE").Select
Range("B12:H12").Select
Selection.Copy
Sheets("mois").Select
ActiveCell.Select
Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=True _
, Transpose:=False
End Sub
- Pièces jointes
-
- Classeur1.ods
- voir l'équivalent excel
- (11.12 Kio) Téléchargé 157 fois
Dernière modification par Oukcha le 16 mars 2010 07:39, modifié 1 fois.
Raison : Pose balise [code] et [/code] = lecture et sélection simplifiées.
Raison : Pose balise [code] et [/code] = lecture et sélection simplifiées.
open office 3.2.0
windows Xp
windows Xp
-
- Fraîchement OOthentifié
- Messages : 2
- Inscription : 18 juin 2009 17:41
Re: [Calc] collage spécial relatif dans un classeur
Bonjour,
Je ne suis pas non plus une pro des macro et ce que je fais n'est pas forcement trés élégant, mais ça fonctionne !!
si j'ai bien compris, ce qui te manque c'est juste le positionnement sur la feuille active :
ça tu peux le récupérer comme ça :
FeuilleDest = Doc.CurrentController.ActiveSheet
Ensuite, après avoir fait le "copy" sur ta feuille d'origine, tu te replaces en inversant la formule :
Doc.CurrentController.ActiveSheet = FeuilleDest
Sinon, si tu as des cochonneries dans les cellules, avant de faire le coller, tu peux tout virer pour être tranquille .
Après avoir sélectionner la plage de cellules :
args1(0).Name = "Flags"
args1(0).Value = "A"
dispatcher.executeDispatch(document, ".uno:Delete", "", 0, args1())
Après ça, le "paste" devrait se faire sans message.
bon courage
Je ne suis pas non plus une pro des macro et ce que je fais n'est pas forcement trés élégant, mais ça fonctionne !!
si j'ai bien compris, ce qui te manque c'est juste le positionnement sur la feuille active :
ça tu peux le récupérer comme ça :
FeuilleDest = Doc.CurrentController.ActiveSheet
Ensuite, après avoir fait le "copy" sur ta feuille d'origine, tu te replaces en inversant la formule :
Doc.CurrentController.ActiveSheet = FeuilleDest
Sinon, si tu as des cochonneries dans les cellules, avant de faire le coller, tu peux tout virer pour être tranquille .
Après avoir sélectionner la plage de cellules :
args1(0).Name = "Flags"
args1(0).Value = "A"
dispatcher.executeDispatch(document, ".uno:Delete", "", 0, args1())
Après ça, le "paste" devrait se faire sans message.
bon courage
OpenOffice 3.2.0 sous Windows XP
-
- Fraîchement OOthentifié
- Messages : 4
- Inscription : 14 mars 2010 19:05
[Resolu] [Calc] collage spécial relatif dans un classeur
RESOLU Merci à ceux qui m'ont apporté leur contribution, cela a été laborieux ; certainement enfantins pour les pros mais j'offre ma solution à ceux à qui cela pourrait servir
Code : Tout sélectionner
REM ***** BASIC *****
Sub lessai
dim Classeur as Object, Fdep as Object, PlageDep as Object, Farr as Object, Cellarr as Object,PlageDep2 as Object, Cellarr2 as Object
dim NumL as integer, NumC as integer, NumC2 as integer
Classeur = thisComponent
'identifier la page active comme page d'arrivée
Farr=Classeur.CurrentController.ActiveSheet
'identifier la page de depart ainsi que les plages à copier
Fdep=Classeur.Sheets.getByName("modele")
PlageDep = Fdep.getCellRangeByName("C3:F3")
'Farr=Classeur.Sheets.getByName("mois")
Classeur.CurrentController.ActiveSheet = Farr
Cellarr = Classeur.CurrentSelection
'Obtenir le numéro de la ligne
NumL = Cellarr.RangeAddress.StartRow
'Obtenir les numéros des colonne à copier
NumC = Cellarr.RangeAddress.StartColumn
'identifier la colonne de la deuxième plage copiée
NumC2 = NumC + 5
'copie de la ppremière plage
Farr.copyrange(Cellarr.cellAddress, PlageDep.rangeAddress)
'selection de la deuxième plage
Fdep=Classeur.Sheets.getByName("modele")
PlageDep2 = Fdep.getCellRangeByName("H3:K3")
'copie de la deuxième plage en retournant sur la page active du départ
Classeur.CurrentController.ActiveSheet = Farr
Cellarr2 = Farr.getCellByPosition (NumC2, NumL)
Farr.copyrange(Cellarr2.cellAddress, PlageDep2.rangeAddress)
end sub
Dernière modification par Flip le 20 mars 2010 22:44, modifié 1 fois.
Raison : Balisage CODE.
Raison : Balisage CODE.
open office 3.2.0
windows Xp
windows Xp