Erreur lors de l'importation de données

Résolu
Doom07 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
Doom07 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous !

Voilà, si je suis ici, c'est que j'ai un léger souci de programmation...
Voici mon problème : je cherche à faire une macro scrutant la ligne 5 allant de F jusqu'à HA. Sur cette ligne, j'ai des cellules vides et des cellules pleines alternées de manière aléatoire (parfois 3 cellules vides de suite, parfois 13...). J'aimerais que pour chaque cellule pleine, une macro importe des données relatives au résultat de cette cellule (ça j'y arrive). Le problème étant lorsque j'arrive sur une cellule vide. Ne reconnaissant pas le résultat, il refuse d'ouvrir le fichier demandé. Alors ma question est simple : existe-t-il un moyen ou une condition pour éviter que ma macro s'exécute lorsqu'une cellule vide est rencontrée ? Pour info' et le bon fonctionnement de mon tableau, je ne peux pas supprimer les colonnes où il y a une cellule vide. Comment faire donc ?
Je vous remercie d'avance du temps que vous consacrerez à mon problème.

Bonne journée !

2 réponses

Zoul67 Messages postés 1959 Date d'inscription   Statut Membre Dernière intervention   149
 
Bonjour,

Englober tout ton code par
If Cells(5,col)<>""
End If


A+
0
Doom07 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Salut Zoul67.

J'ai tenu compte de ta remarque et j'ai essayé de l'appliquer. Le seul hic est que la macro tourne en boucle sans que rien ne se passe. Je visualise à peu près où se situe l'erreur mais je ne sais pas comment la réparer. Je mets ci-dessous le code que j'ai pour l'instant écrit :

Sub macro_de_merde()

Chemin = "F:\SPECFG\NOUVFORM\PREPA\"
OngSour = "PROD"
FichDest = ActiveWorkbook.Name
OngDest = ActiveSheet.Name

Range("A18:D100").ClearContents
Range("F18:BC100").ClearContents

' xx est la colonne du fichier destinataire
xx = 5
Do
    xx = xx + 1
Mix = Workbooks(FichDest).Sheets(OngDest).Cells(5, xx).Value
VolumeMix = Workbooks(FichDest).Sheets(OngDest).Cells(8, xx).Value

Dim CellulesVides As Range

For Each CellulesVides In Range("F5:HA5")
If CellulesVides <> "" Then
    FichSour = Mix & ".xls"
Else
' L'erreur est probablement dans cette boucle
    Do
        xx = xx + 1
    Loop Until Mix <> ""
End If
Next

Workbooks.Open Filename:=Chemin & FichSour, UpdateLinks:=0
Workbooks(FichDest).Activate

End Sub
0
Zoul67 Messages postés 1959 Date d'inscription   Statut Membre Dernière intervention   149
 
Re,

C'est casse-gueule de naviguer entre plusieurs fichiers Excel par macro. Tu ne peux pas plutôt utiliser des fonctions pour aller chercher les données dans les fichiers qui vont bien ?
Sinon le principe c'est plutôt (après les ClearContents) :
For col=6 to 209 '(Fà HA)
If Workbooks(FichDest).Sheets(OngDest).Cells(5, col).Value<>""
.
.
.
Else
.
End If
Next col

A+
0
Doom07 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
J'en conviens, j'en conviens... J'ai également pensé aux fonctions mais la configuration des données fait que c'est très compliqué à appliquer. J'ai donc eu recours à des macros pour pouvoir solutionner mon problème mais je suis tout à fait d'accord avec toi pour dire que c'est bancale... M'enfin bon... En attendant, je voulais te dire un IMMENSE merci pour ta solution proposée. Après 1h d'efforts pour l'appliquer à mon document, ça fonctionne nickel ! Bravo !

Bonne journée !
0