• Initiateur de la discussion Initiateur de la discussion guez
  • 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 !

guez

XLDnaute Nouveau
Bonjour,

Le code ci-dessous fonctionne bien si la cellule source de la variable contient une seule info (ex: 12) mais ne fonctionne pas si la valeur est "12 Fr". C'est donc au niveau de la définition des variables ques ça plante parfois.
Comment completer mon code svp.

Merci pour votre aide

Code:
Sub recup()
Range("A1").Select 'sélectionner la cellule de début
Chemin = "Personnel"
fichier = Dir(Chemin & "*.xls")
Do While fichier <> ""
Workbooks.Open Filename:=Chemin & fichier

Dim Effectif As Integer, NumGestion As Integer
Effectif = Sheets("BALANCE").Range("D89")
NumGestion = Sheets("PARAMETRES").Range("D9")
    
ThisWorkbook.Activate
ActiveCell.Value = Effectif
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = NumGestion

Windows(fichier).Close savechanges:=False
ThisWorkbook.Activate
Range("A65536").End(xlUp).Offset(1, 0).Select
fichier = Dir ' Fichier suivant
Loop
End Sub
 
Dernière édition:
Re : Code VBA incomplet

Bonjour guez, et bienvenue,
Bonjour Pierrot,

Essayer comme ceci en extrayant la valeur de la variable :

Code:
Effectif = Val(Sheets("BALANCE").Range("D89"))
Mais ça ne marchera que si la cellule commence par un chiffre ou un nombre, sinon la variable "Effectif" vaudra 0.

Cordialement.
 
Re : Code VBA incomplet

Merci Papou mais la 1ere solution fonctionne bien.

Je viens de tester ta solution, ça fonctionne sauf qu'il ne me rapatri pas le "FR" de mon exemple. Il me rapatri "12" alors que je souhaite avoir le "12 FR".

J'opte donc pour la solution de Pierrot
 
Re : Code VBA incomplet

Merci Papou mais la 1ere solution fonctionne bien.

Je viens de tester ta solution, ça fonctionne sauf qu'il ne me rapatri pas le "FR" de mon exemple. Il me rapatri "12" alors que je souhaite avoir le "12 FR".

J'opte donc pour la solution de Pierrot

Pas de problème, guez, je n'avais pas compris la finalité : je pensais que tu voulais extraire la valeur numérique.

Pour répondre à ta deuxième question (la différence entre Integer et String):

- Si tu définis la variable en Integer, elle attend un nombre entier. Toute autre valeur provoquera donc un erreur.

- Si tu la définis en String, tu peux y loger n'importe quelle donnée alphanumérique.

A +

Cordialement.
 
Re : Code VBA incomplet

Maintenant que ce problème est résolu, il m'en reste un autre:
Pour le moment, cette macro extrait donc 2 valeurs de tous les classeurs excel contenue dans un dossier. Dans le dossier cible, seul les classeurs avec un nom répondant au format "0005-2013-04" m’intéresse, sachant que les premiers code à 4 chiffres change selon le fichier. Comment extraire les autres de la macro? Exemple: "0005-2013-04 V2" ne doit pas être pris en compte et "Classeur2" non plus.
 
Re : Code VBA incomplet

Re, bonjour Papou-Net🙂,

Dans le dossier cible, seul les classeurs avec un nom répondant au format "0005-2013-04" m’intéresse, sachant que les premiers code à 4 chiffres change selon le fichier. Comment extraire les autres de la macro? Exemple: "0005-2013-04 V2" ne doit pas être pris en compte et "Classeur2" non plus.

euh... perso pas tout compris...
 
Re : Code VBA incomplet

La macro tel quel, extrait 2 valeurs de tous les fichiers excel contenue dans le dossier "Personnel". Je souhaiterais extraire les valeurs, seulement si le nom du fichier est au format "0005-2013-04". Un fichier appelé "classeur2" qui se trouve dans le dossier "Personnel", ne doit pas etre pris en compte par la macro.

Je pense donc à une formule "si" mais je ne sais pas comment la programmer. C'est plus claire?
 
Re : Code VBA incomplet

Maintenant que ce problème est résolu, il m'en reste un autre:
Pour le moment, cette macro extrait donc 2 valeurs de tous les classeurs excel contenue dans un dossier. Dans le dossier cible, seul les classeurs avec un nom répondant au format "0005-2013-04" m’intéresse, sachant que les premiers code à 4 chiffres change selon le fichier. Comment extraire les autres de la macro? Exemple: "0005-2013-04 V2" ne doit pas être pris en compte et "Classeur2" non plus.

Comme ceci, peut-être (pas testé) :

Code:
Sub recup()
        Range("A1").Select 'sélectionner la cellule de début
        Chemin = "G:\Documents\Excel\"
        fichier = Dir(Chemin & "*.xls")
        Do While fichier Like "????-????-??.xls)"
        Workbooks.Open Filename:=Chemin & fichier

        Dim Effectif As Integer, NumGestion As Integer
        Effectif = Val(Sheets("BALANCE").Range("D89"))
        NumGestion = Sheets("PARAMETRES").Range("D9")
           
        ThisWorkbook.Activate
        ActiveCell.Value = Effectif
        ActiveCell.Offset(0, 1).Select
        ActiveCell.Value = NumGestion

        Windows(fichier).Close savechanges:=False
        ThisWorkbook.Activate
        Range("A65536").End(xlUp).Offset(1, 0).Select
        fichier = Dir ' Fichier suivant
        Loop
        End Sub
Cordialement.
 
Re : Code VBA incomplet

Re,

regarde peut être ceci :
Code:
Dim machaine As String
machaine = "xxxx 0005-2013-04xxxxx"
If machaine Like "*####-####-##*" Then MsgBox "ok"

touche de fonction F1 positionné sur l'opérateur "LIKE" te donnera les infos nécessaires à son utilisation....
 
Re : Code VBA incomplet

Papou, ça ne marche pas, rien ne se passe. J'ai remplacé ta solution par "*####-####-##*" (de Pierrot) et là ça me prend tous les fichiers, meme ceux qu'il ne faut pas.

Pierrot, je ne vois pas ou mettre ton code, par contre je n'ai pas besoin de MsgBox.
 
Re : Code VBA incomplet

quel nom de fichier pris en compte à tort ?

Exemple: le fichier nommé "0020-2013-04" comporte des erreurs. Je vais renommer le 1er fichier sous "0020-2013-04 V1" et enregistrer mon fichier corrigé sous "0020-2013-04".

La macro ne doit donc pas aller chercher les fichiers different de "xxxx-xxxx-xx". Ensuite, parfois il peut arriver que pour x ou y raison, j'ai un fichier nommé "classeur2" dans le dossier. Ce fichier n'est pas a prendre en compte non plus.
 
- 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

Discussions similaires

  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
861
Réponses
2
Affichages
461
Réponses
3
Affichages
673
  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
819
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
174
Retour