Traitement de chaîne de caractère

Signaler
Messages postés
3
Date d'inscription
lundi 26 juillet 2010
Statut
Membre
Dernière intervention
27 juillet 2010
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
Bonjour à tous,
Voila j'ai un petit problème avec ma macro, voici la partie du programme qui cloche :
       For Each aRecord In RecordsList.Rows 'pour chaque valeur contenue dans Recordlist je la mets dans aRecord
            
        '1 - traitement des noms dépositaire (unicité - groupement)
               
           GstLibName = Trim(aRecord.Cells(1, colGstLib))' Je que ma macro selectionne uniquement le premier mot de la chaine contenue dans aRecord au lieu de prendre toute la chaine sachant que les enregistrement dans aRecord ressemble à "BP2S RRSFTLT 0000747429Z" et je veux que le programme selectionne uniquement le premier mot "BP2S" j'ai tout essayé la méthode Left, Mid ....etc rien à faire à chaque fois j'ai un message d'incompatibilité

           
'GstLibName2 = Mid$(GstLibName, 0, "")
                                      
                If GstLibName <> "" Then
                GstLibRow = 0
                               
                On Error Resume Next
                GstLibRow = GstLibRows(GstLibName) ' test l'existance du dépositaire dans collection RefIntRows
               
                On Error GoTo 0 ' Continue si erreur
                
                'ajout du nom du dépositaire dans la liste temporaire et dans le fichier cible
                
                If GstLibRow = 0 Then
                      
                    currentRow = currentRow + 1
                    GstLibRow = currentRow
                    GstLibRows.Add GstLibRow, GstLibName
                    .Cells(GstLibRow, 1) = "'" & GstLibName
                End If
                End If
                If IsNumeric(aRecord.Cells(1, colEvaluation)) Then .Cells(GstLibRow, 2) = .Cells(GstLibRow, 2) + aRecord.Cells(1, colEvaluation)
                                        
        Next aRecord

Voila en gro mon problème avec cette Macro si quelqu'un a la solution SVP Trés URGENT !!!!!!!!

3 réponses

Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
Salut
Tu devrais décrire le problème et poster
tout le macro pas une partie
pas tout le monde a un compiler dans sa tete en fin pas moi
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Salut
Oui, nous dire ... quel est ton problème, donner les éventuelles erreurs, dire les valeurs des paramètres au moment de l'erreur, décrire ce qui ne marche pas à ta guise.
Manque aussi les déclarations de tes variables : exemple : RecordsList, c'est quoi ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
La vache : ta description était perdue dans les commentaires :

Tu disais :
"Je que ma macro selectionne uniquement le premier mot de la chaine contenue dans aRecord au lieu de prendre toute la chaine sachant que les enregistrement dans aRecord ressemble à "BP2S RRSFTLT 0000747429Z" et je veux que le programme selectionne uniquement le premier mot "BP2S" j'ai tout essayé la méthode Left, Mid ....etc rien à faire à chaque fois j'ai un message d'incompatibilité"

"j'ai tout essayé" tu ne peux pas dire ça

Si ta chaine GstLibName contient du texte, ceci te fournira le premier mot, c'est à dire ce qu'il y a devant le premier espace rencontré :
    Dim mesMots() As String
    mesMots = Split(GstLibName, " ")
    MsgBox mesMots(0)


Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)