Tronquer une variable string par la droite

Natiffar

XLDnaute Nouveau
Bonjour à tous !

Quelqu'un a-t-il une idée pour tronquer une variable string en partant de la droite.

Par exemple :

Variable1 = 'Le chat de ma grand-mêre s'appelle Minou'

Variable1' = 'Le chat de ma grand-mêre s'appelle'


Cette méthode doit pouvoir s'utiliser quelque soit la longueur de la chaîne. Seule le nombre de caractère à supprimer est fixe (6 dans mon exemple)

C'est peut-être la solution à beaucoup de question que j'ai déjà posée sur ce forum, mais qui sont restées sans réponse. Alors soyez sympa en ce début d'année.

Merci d'avance.

Natiffar :evil:

Message édité par: natiffar, à: 09/01/2006 16:44
 

Jacques87

XLDnaute Accro
Bonjour

=Left(machaine,Len(machaine)-6)

te donnera tous les caractères de ta chaine sauf les 6 derniers

Bon courage

et en Français
=GAUCHE(A4;NBCAR(A4)-6)
ta chaine étant dans cet exemple en A4

Message édité par: Jacques87, à: 09/01/2006 16:57
 

coco_lapin

XLDnaute Impliqué
Bonjour

Cela doit fonctionner.

par contre il m'étais impératif de changer chat par lapin, une question d'orgueil.


Sub lapin()

Variable1 = 'Le lapin de ma grand-mêre s'appelle Minou'
Longueur = Len(Variable1)
Tronquer = 6
Variable2 = Left(Variable1, Longueur - Tronquer)

End Sub

Jacques87 et chTi160 nous nous sommes croisés. Je cours vite mais j'ai pas été assez rapide.

Message édité par: coco_lapin, à: 09/01/2006 17:02
 

Natiffar

XLDnaute Nouveau
Bon Coco_Lapin, je ne crois pas que Minou pour un lapin soit très adapté, mais si cela t'aide à réfléchir je ne me vexerai pas :)

Merci à vous 3 pour vos réponses rapides qui m'ont permis d'avancer...mais pas d'aboutir malheureusement. :(

Comme je vous sens bien parti et en forme je vous explique.

Pourquoi le code suivant ne donne rien ?

Code:
    Dim dlganswer As Boolean
    Dim printer As String
    
        dlganswer = Application.Dialogs(xlDialogPrinterSetup).Show

    If dlganswer = True Then
        ActiveWindow.SelectedSheets.PrintOut Copies:=1, collate:=True

    End If
        
        printer = Application.ActivePrinter

'_________________________________________________________________________________________________________

'IMPRESSION DES CONDITIONS D'ACHATS

Dim appWrd As Word.Application
Dim docWord As Word.Document
Dim Fichier As String


Fichier = 'X:\\Commandes\\Conditions d'achat.doc'

Set appWrd = CreateObject('Word.Application') 'creation session Word
appWrd.Visible = False 'pour que word reste masqué pendant l'operation
Set docWord = appWrd.Documents.Open(Fichier)

Word.Application.ActivePrinter = Left(printer, Len(printer) - 10)
Word.Application.PrintOut Copies:=1, collate:=True 'impression

docWord.Close 'fermer le document Word
appWrd.Quit 'fermer la seesion Word

Avec ce code, j'espérai pouvoir réutiliser la sélection d'imprimante faite dans la première partie du code, pour la réutiliser au moment où je souhaite imprimer mon document Word. Mais cela ne fonctionne pas. Word s'ouvre et puis plus rien :(

Une idée ???

Merci d'avance

Natiffar :evil:
 

ChTi160

XLDnaute Barbatruc
re
en pièce jointe une version VBA
bonne fin de Soirée [file name=transforme.zip size=7896]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/transforme.zip[/file]
 

Pièces jointes

  • transforme.zip
    7.7 KB · Affichages: 35
  • transforme.zip
    7.7 KB · Affichages: 38
  • transforme.zip
    7.7 KB · Affichages: 35

Natiffar

XLDnaute Nouveau
Merci ChTi160 pour le mal que tu t'es donné pour moi. Je conserve précieusement cette petite macro qui pourrait m'être très utile prochainement.
Pour le moment, j'ai opté pour quelque chose de plus à ma portée du type et en 100% code :

Code:
    'Ouvre la boite de dialoque de choix d'imprimante et imprime sur l'imprimante séléctionnée
    Dim dlganswer As Boolean
    Dim xlprinter As String
    
        dlganswer = Application.Dialogs(xlDialogPrinterSetup).Show

    If dlganswer = True Then
        ActiveWindow.SelectedSheets.PrintOut Copies:=1, collate:=True

    End If
        
        xlprinter = Application.ActivePrinter   'Mémorise l'imprimante choisie par l'utilisateur pour imprimer la commande

'_________________________________________________________________________________________________________

'IMPRESSION DES CONDITIONS D'ACHATS OPM

Dim appWrd As Word.Application
Dim docWord As Word.Document
Dim Fichier As String
Dim wrdprinter As String

wrdprinter = Left(xlprinter, Len(xlprinter) - 10)   'Permet de raccourcir la variable xlprinter pour correspondre aux critères souhaités dans Word
Fichier = 'X:\\Commandes\\Conditions d'achat OPM.doc'

Set appWrd = CreateObject('Word.Application') 'creation session Word
appWrd.Visible = False 'pour que word reste masqué pendant l'operation
Set docWord = appWrd.Documents.Open(Fichier)

appWrd.ActivePrinter = wrdprinter
appWrd.PrintOut Copies:=1, collate:=True 'impression

docWord.Close 'fermer le document Word
appWrd.Quit 'fermer la session Word

C'est un peu du bricolage, mais pour le moment je ne suis pas encore très au point avec le code.

Merci également à Jacques87 et Coco_Lapin qui m'ont également aidé à réfléchir pour aboutir.

A bientôt

Natiffar :evil:
 

Discussions similaires

Réponses
19
Affichages
2 K

Statistiques des forums

Discussions
312 322
Messages
2 087 275
Membres
103 504
dernier inscrit
Marie28