Bonjour,
Je souhaite concatener dans une phrase une cellule provenant d'un tableau (contenu dans ma page) avec du texte et/ou des variables.
J'ai essayé de passer par un second tableau contenant des formules du genre :
=<Tableau1.D1> & "Texte"
=CONCATENER(<Tableau1.D1;"Texte)
Rien ne fonctionne : j'obtiens "0" ou "** formule erronée **"
J'ai vérifié tous les formats de cellules (texte ...).
Je précise que je ne souhaite pas passer par OpenOffice Calc.
Est-ce possible dans OO Writer ?
Merci pour votre aide.
[Résolu] Concatener cellule d'un tableau + variables ...
Modérateur : Vilains modOOs
-
scaf
- Fraîchement OOthentifié
- Messages : 6
- Inscription : 27 mai 2006 02:49
[Résolu] Concatener cellule d'un tableau + variables ...
Dernière modification par scaf le 27 mai 2006 15:22, modifié 1 fois.
OO 2.0.1 XP
-
Pierre-Yves Samyn
- Grand Maître de l'OOffice

- Messages : 11276
- Inscription : 02 mai 2006 08:42
Concaténer du texte et des nombres dans une formule
Bonjour
Effectivement, les fonctions de conversion ne semblant pas fonctionner dans ce contexte, il est possible de procéder autrement : définir un repère de texte sur la cellule à récupérer (menu Insérer Repère de texte), puis, à l'endroit où on souhaite le résultat (qui n'est pas forcément un tableau) lancer "Insertion Champs Autres", onglet Références. Choisir la référence créée et le format "Texte de référence".
Effectivement, les fonctions de conversion ne semblant pas fonctionner dans ce contexte, il est possible de procéder autrement : définir un repère de texte sur la cellule à récupérer (menu Insérer Repère de texte), puis, à l'endroit où on souhaite le résultat (qui n'est pas forcément un tableau) lancer "Insertion Champs Autres", onglet Références. Choisir la référence créée et le format "Texte de référence".
-
scaf
- Fraîchement OOthentifié
- Messages : 6
- Inscription : 27 mai 2006 02:49
... et code barre 128 ...
Merci Pierre-Yves, cela fonctionne
Je souhaiterai aussi appliquer une fonction (macro openbarcodes provenant du site http://grandzebu.net) sur mon expression concatenée :
Voici la fonction :
Etant novice dans les macro, je ne sais pas comment l'appliquer sur mon expression à coder. 
Je souhaiterai aussi appliquer une fonction (macro openbarcodes provenant du site http://grandzebu.net) sur mon expression concatenée :
Voici la fonction :
Code : Tout sélectionner
Public Function Code128$(chaine$)
'V 1.1.0
'Paramètres : une chaine
'Parameters : a string
'Retour : * une chaine qui, affichée avec la police CODE128.TTF, donne le code barre
' * une chaine vide si paramètre fourni incorrect
'Return : * a string which give the bar code when it is dispayed with CODE128.TTF font
' * an empty string if the supplied parameter is no good
Dim i%, checksum&, mini%, dummy%, tableB As Boolean
Code128$ = ""
If Len(chaine$) > 0 Then
'Vérifier si caractères valides
'Check for valid characters
For i% = 1 To Len(chaine$)
Select Case Asc(Mid$(chaine$, i%, 1))
Case 32 To 126, 198
Case Else
i% = 0
Exit For
End Select
Next
'Calculer la chaine de code en optimisant l'usage des tables B et C
'Calculation of the code string with optimized use of tables B and C
Code128$ = ""
tableB = True
If i% > 0 Then
i% = 1 'i% devient l'index sur la chaine / i% become the string index
Do While i% <= Len(chaine$)
If tableB Then
'Voir si intéressant de passer en table C / See if interesting to switch to table C
'Oui pour 4 chiffres au début ou à la fin, sinon pour 6 chiffres / yes for 4 digits at start or end, else if 6 digits
mini% = IIf(i% = 1 Or i% + 3 = Len(chaine$), 4, 6)
GoSub testnum
If mini% < 0 Then 'Choix table C / Choice of table C
If i% = 1 Then 'Débuter sur table C / Starting with table C
Code128$ = Chr$(205)
Else 'Commuter sur table C / Switch to table C
Code128$ = Code128$ & Chr$(199)
End If
tableB = False
Else
If i% = 1 Then Code128$ = Chr$(204) 'Débuter sur table B / Starting with table B
End If
End If
If Not tableB Then
'On est sur la table C, essayer de traiter 2 chiffres / We are on table C, try to process 2 digits
mini% = 2
GoSub testnum
If mini% < 0 Then 'OK pour 2 chiffres, les traiter / OK for 2 digits, process it
dummy% = Val(Mid$(chaine$, i%, 2))
dummy% = IIf(dummy% < 95, dummy% + 32, dummy% + 100)
Code128$ = Code128$ & Chr$(dummy%)
i% = i% + 2
Else 'On n'a pas 2 chiffres, repasser en table B / We haven't 2 digits, switch to table B
Code128$ = Code128$ & Chr$(200)
tableB = True
End If
End If
If tableB Then
'Traiter 1 caractère en table B / Process 1 digit with table B
Code128$ = Code128$ & Mid$(chaine$, i%, 1)
i% = i% + 1
End If
Loop
'Calcul de la clé de contrôle / Calculation of the checksum
For i% = 1 To Len(Code128$)
dummy% = Asc(Mid$(Code128$, i%, 1))
dummy% = IIf(dummy% < 127, dummy% - 32, dummy% - 100)
If i% = 1 Then checksum& = dummy%
checksum& = (checksum& + (i% - 1) * dummy%) Mod 103
Next
'Calcul du code ASCII de la clé / Calculation of the checksum ASCII code
checksum& = IIf(checksum& < 95, checksum& + 32, checksum& + 100)
'Ajout de la clé et du STOP / Add the checksum and the STOP
Code128$ = Code128$ & Chr$(checksum&) & Chr$(206)
End If
End If
Exit Function
testnum:
'si les mini% caractères à partir de i% sont numériques, alors mini%=0
'if the mini% characters from i% are numeric, then mini%=0
mini% = mini% - 1
If i% + mini% <= Len(chaine$) Then
Do While mini% >= 0
If Asc(Mid$(chaine$, i% + mini%, 1)) < 48 Or Asc(Mid$(chaine$, i% + mini%, 1)) > 57 Then Exit Do
mini% = mini% - 1
Loop
End If
Return
End FunctionOO 2.0.1 XP
-
cris59
- Membre enthOOusiaste

- Messages : 482
- Inscription : 20 mars 2006 15:15
- Localisation : Paris
-
scaf
- Fraîchement OOthentifié
- Messages : 6
- Inscription : 27 mai 2006 02:49