Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion lanaine
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

L

lanaine

Guest
Bonjour,

Je travaille sur une macro déjà existante.
Ce bout de code, ci dessous, d'après le commentaire, limite une chaine de caractère à 20 caractères.
J'aimerai bien limiter ce nombre à 30 maintenant.
Est ce que vous pouvez m'aider ?
Dites moi si il faut un autre bout de code.

Merci.

Code:
'Adaptation du libellé à 20 Caractères


Range("B" & i).Select
            ActiveCell.FormulaR1C1 = "=IF(ISNA(VLOOKUP(RC[-1],'" + sFileName + "'!C2:C6,2,FALSE)),"" "",(VLOOKUP(RC[-1],'" + sFileName + "'!C2:C6,2,FALSE)))"
    Range("F" & i).Select
            ActiveCell.FormulaR1C1 = "=UPPER(RC[-4])"
            Selection.Copy
            Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                :=False, Transpose:=False
 
Re : Macro Inconnue

Bonjour lanaine

D'apres le commentaire !!!
Je crains que la réalité sois differente
Peux-tu poster un fichier exemple de ce qui existe et de ce que tu souhaites (sans données confidentielles et reduit au necessaire pour comprendre le problème)
 
Re : Macro Inconnue

Salut,

Ce bout de code ne sert pas a limiter une chaine a 20 caracteres mais a
verifier si la reference de la colonne precedente (Ai) existe dans le fichier sFileName dans la plage C2:C6 et
retourne la valeur de la 2eme colonne (ici colonne 3 dans sFileName)
Et met le resultat en majuscule en Fi
 
Re : Macro Inconnue

Merci. j'ai compri à quoi servait ce bout de code.

j'ai trouvé ou se trouvait ce que je cherchais : mes 30 caractères.

Code:
'Supprime Lot ,Bte ou Set
        Lot = Left(Range("F" & i).Value, 3)
        Pack = Left(Range("F" & i).Value, 4)
        
        If (Lot = "lot" Or Lot = "set" Or Lot = "bte") Then
            Lot = Mid(Range("F" & i), 5, Len(Range("F" & i)))
            Lotde = Left(Lot, 3)
            
            
'Supprime "de " Qui aurait été omis ...
            If (Lotde = "de ") Then
                Lot = Mid(Lot, 4, Len(Range("F" & i)))
            End If
            Lot = Left(Lot, 20)
            Range("B" & i).Select
                ActiveCell.FormulaR1C1 = Lot
        ElseIf (Pack = "pack") Then
            Pack = Mid(Range("F" & i), 6, Len(Range("F" & i)))
            Packde = Left(Pack, 3)
            
            
'Supprime "de " Qui aurait été omis ...
            If (Packde = "de ") Then
                Pack = Mid(Pack, 5, Len(Range("F" & i)))
            End If
            Pack = Left(Pack, 20)
            Range("B" & i).Select
                ActiveCell.FormulaR1C1 = Pack
        Else
            Range("B" & i).Select
                ActiveCell.FormulaR1C1 = Left(Range("F" & i), 20)
        End If
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False

Quand je remplace mon 20 en 30 cela augmente bien ma chaine de caractère mais cela ne supprime plus les lots de...etc les mots qui doivent être enlevés.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
18
Affichages
597
Réponses
10
Affichages
791
Réponses
2
Affichages
398
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…