Traitement de chaîne de caractère

amine8293 Messages postés 3 Date d'inscription lundi 26 juillet 2010 Statut Membre Dernière intervention 27 juillet 2010 - 27 juil. 2010 à 15:55
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 27 juil. 2010 à 18:04
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

cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
27 juil. 2010 à 16:56
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
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
27 juil. 2010 à 17:59
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)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
27 juil. 2010 à 18:04
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)
0
Rejoignez-nous