[Résolu][Calc] fusionner deux colonnes en une seule
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 !

Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
-
- Membre OOrganisé
- Messages : 62
- Inscription : 17 janv. 2020 19:39
[Résolu][Calc] fusionner deux colonnes en une seule
Bonjour,
Est-ce que vous savez s'il est possible de "concaténer" deux colonnes en une seule par une macro ?
Merci
Est-ce que vous savez s'il est possible de "concaténer" deux colonnes en une seule par une macro ?
Merci
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LIbreoffice 24.2.1
Windows 11
Windows 11
-
- IdOOle de la suite
- Messages : 25976
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Calc] fusionner deux colonnes en une seule
Salut,
Fusionner et concaténer sont deux choses différentes.
Il s'agit juste de copier les deux colonnes en une seule vers une autre feuille.
As-tu essayé avec l'enregistreur de macro ?
Fusionner et concaténer sont deux choses différentes.
Il s'agit juste de copier les deux colonnes en une seule vers une autre feuille.
As-tu essayé avec l'enregistreur de macro ?
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
-
- Membre OOrganisé
- Messages : 62
- Inscription : 17 janv. 2020 19:39
Re: [Calc] fusionner deux colonnes en une seule
Salut,
Non pas encore mais c'est possible quelle que soit la taille des colonnes ?
Comment faire ? un copier spécial ?
Merci
Non pas encore mais c'est possible quelle que soit la taille des colonnes ?
Comment faire ? un copier spécial ?
Merci
LIbreoffice 24.2.1
Windows 11
Windows 11
-
- SuppOOrter
- Messages : 1313
- Inscription : 10 nov. 2006 15:04
- Localisation : F-Oise
Re: [Calc] fusionner deux colonnes en une seule
Bonjour,
Si j'ai bien tout compris :
Cordialement.
Si j'ai bien tout compris :
- il faut sélectionner tous les éléments de la colonne B et les copier.
- il faut ensuite les coller dans la colonne A.
Cordialement.
Ekel
KUbuntu Noble Numbat (24.04) : LibreOffice 24.8.0.3 Officielle
AMD Ryzen 5 5600G
AMD Radeon RX 6650 XT
22" + 22"
16 Go
____________________
Pour les règles du jeu.
Pour marquer Résolu.
Pour joindre un fichier.
KUbuntu Noble Numbat (24.04) : LibreOffice 24.8.0.3 Officielle
AMD Ryzen 5 5600G
AMD Radeon RX 6650 XT
22" + 22"
16 Go
____________________
Pour les règles du jeu.
Pour marquer Résolu.
Pour joindre un fichier.
-
- IdOOle de la suite
- Messages : 25976
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Calc] fusionner deux colonnes en une seule
Tu veux sûrement dire le nombre de colonnes. Car la taille n'a rien à voir avec la copie.
Avec zBasic, il suffit de paramétrer les plages à parcourir :
Code : Tout sélectionner
Sub Main
Globalscope.BasicLibraries.LoadLibrary( "zBasic" )
aPlage = array("A2:A4", "B2:B3") 'définir ici les plages
zFeuille.Cree("Récap")
zCellule.Ecrit("Récap","A1","C","Concat")
for each sPlage in aPlage
nLigne = zPlage.LigneVide("Récap")
zPlage.Copie("Entrée", sPlage, "Récap", "A" & nLigne)
next
End Sub
-
- HédOOniste
- Messages : 1823
- Inscription : 15 déc. 2010 08:33
Re: [Calc] fusionner deux colonnes en une seule
Bonjour
Pour le fun une proposition avec macro qui copie les colonnes sur la même colonne Sans doute il y a plus simple pour aller chercher la fin de la 1ere colonne pour ensuite coller la 2éme colonne
mais je débute
Pour le fun une proposition avec macro qui copie les colonnes sur la même colonne Sans doute il y a plus simple pour aller chercher la fin de la 1ere colonne pour ensuite coller la 2éme colonne
mais je débute

Ajout : Le code utilisé |
Code : Tout sélectionner
Sub CopieColonneA
Dim oDoc as Object
Dim Sheets as object
Dim SheetSource as Object
Dim SheetCible as Object
Dim oPlage1 as Object
Dim oPlage2 as Object
dim oPlageCible1 as Object
dim oPlageCible2 as Object
dim oCellCible as string
oDoc = thisComponent
SheetSource = oDoc.Sheets.getByName("Entrée")
SheetCible = oDoc.Sheets.getByName("Résultat attendu")
oPlage1= SheetSource.getCellRangeByName("A2:A1000")
oPlageCible1 = SheetCible.getCellRangeByName("A2:A1000")
' copie et colle les plages
Copie=oPlage1
Colle=oPlageCible1
Colle.DataArray = Copie.DataArray
'copie colonne B
Call CopieColonneB
End Sub
Sub CopieColonneB
Dim oDoc as Object
Dim Sheets as object
Dim SheetSource as Object
Dim SheetCible as Object
Dim oPlage1 as Object
Dim oPlage2 as Object
dim oPlageCible1 as Object
dim oPlageCible2 as Object
dim oCellCible as string
oDoc = thisComponent
SheetSource = oDoc.Sheets.getByName("Entrée")
SheetCible = oDoc.Sheets.getByName("Résultat attendu")
' compage des lignes colonne A
For i = 1 to 10
oCellCible1=SheetSource.getCellRangeByName("A"&i).String 'lire cellule a2
count=count+1
'print count
' print oCellCible1
if oCellCible1 = "" then exit for
next i
' print count ' pour test
oPlage2= SheetSource.getCellRangeByName("B2:B1000") ' plage de 998 lignes
oPlageCible2Debut="A"& count
oPlageCible2Fin="A"&count+998 ' plage de 998 lignes
oPlageCibleDebutFin=oPlageCible2Debut &":"& oPlageCible2Fin
' print oPlageCibleDebutFin
oPlageCible2 = SheetCible.getCellRangeByName(oPlageCibleDebutFin)
' copie et colle les plages
Copie=oPlage2
Colle=oPlageCible2
Colle.DataArray = Copie.DataArray
End Sub
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par yclik le 12 déc. 2024 17:02, modifié 1 fois.
OpenOffice 4.1.14 sous Windows 11
-
- Membre OOrganisé
- Messages : 62
- Inscription : 17 janv. 2020 19:39
Re: [Calc] fusionner deux colonnes en une seule
Merci à tous les deux, je regarde ça.
LIbreoffice 24.2.1
Windows 11
Windows 11
-
- Membre OOrganisé
- Messages : 62
- Inscription : 17 janv. 2020 19:39
Re: [Calc] fusionner deux colonnes en une seule
Concernant la proposition avec zBasic :
le aPlage permet de choisir les plages à choisir mais comment on fait pour lui indiquer la feuille ?
Car j'ai modifié le "Entrée" du zPlage.Copie, mais ça ne semble pas changer grand chose, les données copiées viennent d'un autre onglet ?
Merci
Code : Tout sélectionner
Sub Main
Globalscope.BasicLibraries.LoadLibrary( "zBasic" )
aPlage = array("A2:A4", "B2:B3") 'définir ici les plages
zFeuille.Cree("Récap")
zCellule.Ecrit("Récap","A1","C","Concat")
for each sPlage in aPlage
nLigne = zPlage.LigneVide("Récap")
zPlage.Copie("Entrée", sPlage, "Récap", "A" & nLigne)
next
End Sub
Car j'ai modifié le "Entrée" du zPlage.Copie, mais ça ne semble pas changer grand chose, les données copiées viennent d'un autre onglet ?
Merci
LIbreoffice 24.2.1
Windows 11
Windows 11
-
- IdOOle de la suite
- Messages : 25976
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Calc] fusionner deux colonnes en une seule
Le code est donné en fonction du document que tu fournis au départ.parlapresente a écrit : ↑12 déc. 2024 17:00 Car j'ai modifié le "Entrée" du zPlage.Copie, mais ça ne semble pas changer grand chose, les données copiées viennent d'un autre onglet ?

Si tu changes les informations, tu fournis un nouveau document sur lequel on puisse comprendre et reproduire ton problème.