Bonjour,
Voilà que je me retrouve à devoir mettre en place une macro car pas le choix (enfin je pense...).
Sur le fichier joint il faudrait que se colle (en affectant une macro à un bouton) les colonnes AD, AE, AF à partir de la ligne 3 dans les colonnes AL, AM, AN aussi à partir de la ligne 3 si la référence (colonne AF) est "Tx Avancement 1" et dans le cas où la référence est "Tx Avancement 2" le copié collé devra se faire sur les colonnes AO, AP, AQ.
Si la référence est sur Tx de réussite le copié collé concerne cette fois les colonnes AC, AE, AF qui vont se coller en AU, AV, AW.
Si la référence est sur Tx de collecte le copié collé concerne cette fois les colonnes Z, AE, AF qui vont se coller en AR, AS, AT.
Autre chose il faut à tout prix que les données se collent à la suite sans supprimer les anciens copié-collé de façon à conserver l'ensemble des données et pouvoir y appliquer une rechercheV.
Un grand merci d'avance à l'âme charitable qui prendra un peu de son temps pour me faire cette petite macro
Solution retenue : macro de Noonours
[Résolu] [Calc] Copier coller colonnes selon conditions
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 !
-
- Membre prOOscrit
- Messages : 17
- Inscription : 14 mars 2019 13:34
[Résolu] [Calc] Copier coller colonnes selon conditions
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par tomasi le 19 janv. 2024 10:18, modifié 4 fois.
libO 5.4
windows 7 professionnel
Obligation de version
windows 7 professionnel
Obligation de version
-
- RespOOnsable forum
- Messages : 12457
- Inscription : 08 nov. 2005 16:23
- Localisation : Caen, France
Re: [Calc] Copier coller colonnes selon conditions
Bonjour,
Je vois que 30 jours plus tard, vous n'avez obtenu aucune réponse.
Voici quelques pistes à suivre pour essayer d'avancer :
Simplifiez votre question (sans doute trop vague ou trop générale) en l'éclatant en tâches plus simple.
Vous pouvez commencer avec l'enregistreur de macro par exemple.
Ensuite fouillez un peu, il y a certainement un bout de code à récupérer et qui s'approche de chaque problème.
N'hésitez pas à revenir si vous étiez bloqué sur un point précis.
Je vois que 30 jours plus tard, vous n'avez obtenu aucune réponse.
Voici quelques pistes à suivre pour essayer d'avancer :
Simplifiez votre question (sans doute trop vague ou trop générale) en l'éclatant en tâches plus simple.
Vous pouvez commencer avec l'enregistreur de macro par exemple.
Ensuite fouillez un peu, il y a certainement un bout de code à récupérer et qui s'approche de chaque problème.
N'hésitez pas à revenir si vous étiez bloqué sur un point précis.
-
- PassiOOnné
- Messages : 517
- Inscription : 11 mai 2013 00:11
- Localisation : Aix en Provence
Re: [Calc] Copier coller colonnes selon conditions
Bonjour,
Tu peux tester le code ci-dessous que tu pourras rattacher à un bouton.
j'ai créé 4 cas, en fonction de ta cellule C1, puisque c'est son contenu qui va déterminer quelles plages de cellules vont être copiées-collées.
Cordialement,
Tu peux tester le code ci-dessous que tu pourras rattacher à un bouton.
j'ai créé 4 cas, en fonction de ta cellule C1, puisque c'est son contenu qui va déterminer quelles plages de cellules vont être copiées-collées.
Code : Tout sélectionner
Sub CopierColler_aLaSuite()
oDoc = ThisComponent
oFeuil = oDoc.sheets.getByName("Feuille1")
oCellReference = oFeuil.getCellRangeByName("C1")
Select Case oCellReference.String
Case "Tx Avancement 1"
ColACopier = Array(29, 30, 31) 'colonnes AD, AE et AF
ColDest = Array(37, 38, 39) 'AL, AM, AN
Case "Tx Avancement 2"
ColACopier = Array(29, 30, 31) 'colonnes AD, AE et AF
ColDest = Array(40, 41, 42) 'AO, AP, AQ
Case "Tx de réussite"
ColACopier = Array(28, 30, 31) 'colonnes AC, AE et AF
ColDest = Array(46, 47, 48) 'AU, AV, AW
Case "Tx de collecte"
ColACopier = Array(25, 30, 31) 'colonnes Z, AE et AF
ColDest = Array(43, 44, 45) 'AR, AS, AT
Case Else
Exit Sub
End Select
For i = 0 to 2
'détermination de la zone à copier
oZonesVides = oFeuil.Columns(ColACopier(i)).queryEmptyCells.RangeAddresses
DerLign = oZonesVides(Ubound(oZonesVides)).StartRow
ZoneACopier = oFeuil.getCellRangeByPosition(ColACopier(i),2,ColACopier(i),DerLign)
'détermination de la zone cible où seront collées les données
oZonesVides = oFeuil.Columns(ColDest(i)).queryEmptyCells.RangeAddresses
LigneCible = oZonesVides(Ubound(oZonesVides)).StartRow
ZoneCible = oFeuil.getCellRangeByPosition(ColDest(i),LigneCible,ColDest(i),LigneCible + ZoneACopier.rows.Count -1) ' la zone cible doit être de même dimension (taille) que la zone d'origine
'copier-coller des données
ZoneCible.DataArray = ZoneACopier.DataArray
next i
End Sub
Ajout : j'ai modifié la fin du script avec un transfert de DataArray pour ne recopier que les valeurs et non le format ( mon premier jet était avec la méthode copyRange, et les références à C1 continuaient d'être actives et liées à la modification des cellules du classeur ) |
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 24.2.5.2 et OpenOffice 4.1.15 sous Windows 10
Pour obtenir la réponse la plus précise possible, VEUILLEZ JOINDRE UN FICHIER
LibO 24.2.5.2 et OpenOffice 4.1.15 sous Windows 10
-
- Membre prOOscrit
- Messages : 17
- Inscription : 14 mars 2019 13:34
Re: [Résolu] Copier coller colonnes selon conditions
merci pour cette réponse
libO 5.4
windows 7 professionnel
Obligation de version
windows 7 professionnel
Obligation de version