Merci beaucoup Markus pour trouver une solution à cela.
Voici quelques instructions légèrement plus détaillées pour les débutants OpenOffice Basic comme moi. Il en est à la version 3.1:
Outils -> Macros -> Gérer les macros -> OpenOffice.org Basic ...
Maintenant, sélectionnez dans l'arborescence de l'explorateur où vous voulez que votre fonction en direct, par exemple il peut être dans votre propre bibliothèque de macros (My Macros/Standard) ou stocké directement dans la feuille de calcul actuelle.
Entrez maintenant un nouveau nom de macro et cliquez sur Nouveau pour ouvrir l'EDI de base OO.org. Vous verrez une instruction REM et certaines définitions de sous-raccord stub. Supprimer tout cela et remplacer avec:
Function STRJOIN(range, Optional delimiter As String, Optional before As String, Optional after As String)
Dim row, col As Integer
Dim result, cell As String
result = ""
If IsMissing(delimiter) Then
delimiter = ","
End If
If IsMissing(before) Then
before = ""
End If
If IsMissing(after) Then
after = ""
End If
If NOT IsMissing(range) Then
If NOT IsArray(range) Then
result = before & range & after
Else
For row = LBound(range, 1) To UBound(range, 1)
For col = LBound(range, 2) To UBound(range, 2)
cell = range(row, col)
If cell <> 0 AND Len(Trim(cell)) <> 0 Then
If result <> "" Then
result = result & delimiter
End If
result = result & before & range(row, col) & after
End If
Next
Next
End If
End If
STRJOIN = result
End Function
Le code ci-dessus a quelques légères améliorations de Markus' origine:
ne démarre pas avec un séparateur lorsque la première cellule de la plage est vide.
Permet le choix en option du séparateur (par défaut « »), et les chaînes qui vont avant et après chaque entrée non vide dans la gamme (par défaut, « »). Je l'ai renommé STRJOIN puisque "join" est le nom typique de cette fonction dans plusieurs langages populaires, tels que Perl, Python, et Ruby.
Variables en minuscules
maintenant enregistrer la macro, allez à la cellule où vous voulez la rejoindre à apparaître, et tapez:
=STRJOIN(C3:C50)
remplacement C3: C50 avec la gamme des chaînes que vous voulez rejoindre.
Pour personnaliser le séparateur, utilisez plutôt quelque chose comme:
=STRJOIN(C3:C50; "/")
Si vous voulez rejoindre un groupe d'adresses e-mail, vous pouvez utiliser:
=STRJOIN(C3:C50; ", "; "<"; ">")
et le résultat serait quelque chose comme
<[email protected]>, <[email protected]>, <[email protected]>, <[email protected]>
Ceci obtiendra une meilleure réponse sur Super User. Vous n'avez pas besoin de le republier car la question sera déplacée automatiquement. – ChrisF
Oh, wow, je ne savais même pas que le super utilisateur existait. Merci! –