Problème de code

Bonjour,

J'ai réalisé un code VBA simple pour extraire des lignes d'une feuille vers une autre en fonction du nom d'un cellule.

Je vous joins un fichier avec certaines infos supprimées mais l'idée, le layout et le code y sont. Le problème est que quand je lance ma macro, rien ne se passe aucun problème mais le code ne fonctionne pas non plus.

Je vous remercie d'avance de tout le temps et l'aide que vous pourrez m'apporter.

Cordialement

Nicolas

Bonjour,

Il ne peut rien se passer ! Tu cherches lig sur une colonne vide. lig = 1.

Une boucle de 2 à 1, ça ne démarre pas, sans rien dire !

Cordialement.

Ton code en grande partie, enregistré est à réécrire pour l'expurger des Select, Activate, Windows... et l'améliorer un peu...

Bonjour,

dans le code tu écris le nom d'une feuille qui n'existe pas et tu ne nous dit pas sur base de quelle cellule tu veux extraire vers une (des) autre onglets ?

On suppose que c'est la 4e colonne ("fournisseurs") ?

P.

ps: il est préférable d'éviter les fusions de cellules !!! ça ne pose quasi que des problèmes

Bonjour Messieurs,

Je ne comprends pas bien ou est située la feuille qui n'existe pas ?

Veuillez m'excuser je n'ai pas été très clair, je veux extraire la ligne complète de la feuille "overview" si en colonne D il y a MANPOWER écrit. Et la coller dans la feuille Datas Manpo.

Au passage bien vu pour le lig=1 mais même en supprimant la première colonne vide qui ne sert à rien, le problème persiste.

Nicolas29 a écrit :

Bonjour Messieurs,

Je ne comprends pas bien ou est située la feuille qui n'existe pas ?

Windows("170712_REPONSES PAR FOURNISSEURS & PAR SITES.xlsm").Activate

J'ai réalisé un code VBA simple pour extraire des lignes d'une feuille vers une autre en fonction du nom d'un cellule

quelle cellule ?

Tu ne décris pas CLAIREMENT ta demande ....

Tu pars de la ligne 1 avec ta méthode, qui est vide !

J'ai d'ailleurs fait une petite erreur tout à l'heure, ta recherche ne démarrant pas, tu retranches 1 lig est donc à 0.

La boucle est donc de 2 à 0, avec un pas par défaut à +1, elle ne démarre pas plus, tu ne peux donc être alertée par une erreur sur la ligne 0...

J'ai changé le nom du fichier pour vous l'envoyer mais ne me suis pas amusé à changer le code imaginant que vous comprendriez que ce n'était pas le nom originel du fichier que je vous envoyait, en effet je ne m'amuse pas à écrire dans le nom de mes fichiers "excelpratique" ...

Nicolas29 a écrit :

Veuillez m'excuser je n'ai pas été très clair, je veux extraire la ligne complète de la feuille "overview" si en colonne D il y a MANPOWER écrit. Et la coller dans la feuille Datas Manpo.

Je vois mal comment être plus CLAIR.

MFerrand a écrit :

Tu pars de la ligne 1 avec ta méthode, qui est vide !

J'ai d'ailleurs fait une petite erreur tout à l'heure, ta recherche ne démarrant pas, tu retranches 1 lig est donc à 0.

La boucle est donc de 2 à 0, avec un pas par défaut à +1, elle ne démarre pas plus, tu ne peux donc être alertée par une erreur sur la ligne 0...

Re: Problème de code

J'entrevois ce que vous essayez de m'expliquer mais je ne suis pas sûr du tout, donc mes datas commençant à la ligne 5 réellement il suffirait de changer le 1 par un 5 mais à priori ce n'est pas ça car la macro ne fonctionne toujours pas

C'est pas suffisant, tu n'as pas tout lu... pour régler la définition de lig.

Mais ensuite il y a quelques autres problèmes qui t'attendent...

Bonjour

Voila ta macro modifier

A+

Maurice

Sub datas()
Dim Nlig As Long
Dim L As Long
Dim F As Long
Sheets("Overview").Select
lig = Range("A" & Rows.Count).End(xlUp).Row
F = 2
   For L = 5 To Nlig
      If Cells(L, 4).Value = "MANPOWER" Then
         Rows(L).Copy
         Feuil3.Cells(F, 1).PasteSpecial xlPasteValues
         F = F + 1
      End If
   Next
End Sub
MFerrand a écrit :

C'est pas suffisant, tu n'as pas tout lu... pour régler la définition de lig.

Mais ensuite il y a quelques autres problèmes qui t'attendent...

Promis j'ai tout lu, et il me semble que le lig est ajusté, puisqu'en commençant à 5 il regarde si la cell est vide ou non, elle ne l'est pas alors il ajoute 1 et compte ainsi jusqu'à la dernière cell pleine de ma colonne.

Merci Maurice d'avoir pris le temps de t'intéresser à mon problème cependant ton code ne fonctionne pas, j'ai repris quelques éléments de ton code et j'ai réalisé ce code :

Sub datas()

Dim lig As Long
Dim i As Integer
Dim f As Integer

lig = 5

Windows("170712_REPONSES PAR FOURNISSEURS & PAR SITES.xlsm").Activate

Sheets("Overview").Select

    While Not IsEmpty(Cells(lig, 1))
    lig = lig + 1
    Wend
    lig = lig - 1

Sheets("Overview").Select
f = 1

For i = 5 To lig

    If Cells(i, 3).Value = "MANPOWER" Then
    Rows(i).Copy
    Feuil3.Cells(f, 1).PasteSpecial xlPasteValues

     i = i + 1

    f = f + 1

    Else
 End If
Next i

End Sub

Qui fonctionne partiellement puisqu'il réussit à me trouver 5 lignes sur les 13 que contient mon fichier.


J'ai résolu mon problème, il s'agissait en réalité d'un espace présent à la fin de certaines cellules.

Merci à tous pour l'aide et les conseils.

Cordialement

puisqu'en commençant à 5 il regarde si la cell est vide ou non

Oui ! mais ça dépendait dans quelle colonne...

Oui il est vrai. En tout cas merci pour les pistes et de ne pas l'avoir mâcher le travail ça permet de chercher par soit même!

Rechercher des sujets similaires à "probleme code"