Problème extraction automatique de donné fonction find
Mikahdo
-
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je souhaite a partir d'un fichier comprenant divers id, à en extraire seulement certains à partir d'une liste que je copie collerai dans ma colonne 10 (le nombre d'identifiant dans liste pouvant varier)
J'ai donc tenté d'utiliser la fonction .find et d'y associer ensuite la procédure que j'aimerai faire.
Seulement au lieu de copier coller un jour semaine (lundi mardi mercredi jeudi ou vendredi) ET un jour weekend (samedi ou dimanche) s'il trouve une correspondance, il s'arrête au premier copier coller sans chercher d'autre correspondance et surtout sans passer à l'identifiant numéro2 quand il a fini avec le 1
voilà mon code, merci de votre aide
Je souhaite a partir d'un fichier comprenant divers id, à en extraire seulement certains à partir d'une liste que je copie collerai dans ma colonne 10 (le nombre d'identifiant dans liste pouvant varier)
J'ai donc tenté d'utiliser la fonction .find et d'y associer ensuite la procédure que j'aimerai faire.
Seulement au lieu de copier coller un jour semaine (lundi mardi mercredi jeudi ou vendredi) ET un jour weekend (samedi ou dimanche) s'il trouve une correspondance, il s'arrête au premier copier coller sans chercher d'autre correspondance et surtout sans passer à l'identifiant numéro2 quand il a fini avec le 1
voilà mon code, merci de votre aide
Sub selection()
Dim i As Integer, j As Integer, Lig As Long, nbsemaine As Integer, nbweekend As Integer
Dim sNom As String, criter1 As String
Dim nbre As Integer, Cptr As Long
i = 1
j = 2
Application.ScreenUpdating = False
While Cells(i, 10) <> ""
criter1 = Cells(i, 10)
nbre = Application.CountIf(Columns("A"), criter1)
If nbre = 0 Then
i = i + 1
Else
Lig = ActiveSheet.Columns(1).Find(what:=criter1).Row
For Cptr = 1 To nbre
If Cells(Lig, 7) = 1 Then
If Cells(Lig, 8) = "lundi" And nbsemaine = 0 Then
Range(Cells(Lig, 8), Cells(Lig - 23, 1)).Copy
Sheets("Feuil1").Select
Cells(j, 1).Select
ActiveSheet.Paste
j = j + 24
nbsemaine = nbsemaine + 1
End If
If Cells(Lig, 8) = "mardi" And nbsemaine = 0 Then
Range(Cells(Lig, 8), Cells(Lig - 23, 1)).Copy
Sheets("Feuil1").Select
Cells(j, 1).Select
ActiveSheet.Paste
j = j + 24
nbsemaine = nbsemaine + 1
End If
If Cells(Lig, 8) = "mercredi" And nbsemaine = 0 Then
Range(Cells(Lig, 8), Cells(Lig - 23, 1)).Copy
Sheets("Feuil1").Select
Cells(j, 1).Select
ActiveSheet.Paste
j = j + 24
nbsemaine = nbsemaine + 1
End If
If Cells(Lig, 8) = "jeudi" And nbsemaine = 0 Then
Range(Cells(Lig, 8), Cells(Lig - 23, 1)).Copy
Sheets("Feuil1").Select
Cells(j, 1).Select
ActiveSheet.Paste
j = j + 24
nbsemaine = nbsemaine + 1
End If
If Cells(Lig, 8) = "vendredi" And nbsemaine = 0 Then
Range(Cells(Lig, 8), Cells(Lig - 23, 1)).Copy
Sheets("Feuil1").Select
Cells(j, 1).Select
ActiveSheet.Paste
j = j + 24
nbsemaine = nbsemaine + 1
End If
If Cells(Lig, 8) = "samedi" And nbweekend = 0 Then
Range(Cells(Lig, 8), Cells(Lig - 23, 1)).Copy
Sheets("Feuil2").Select
Cells(j, 1).Select
ActiveSheet.Paste
j = j + 24
nbweekend = nbweekend + 1
End If
If Cells(Lig, 8) = "dimanche" And nbweekend = 0 Then
Range(Cells(Lig, 8), Cells(Lig - 23, 1)).Copy
Sheets("Feuil2").Select
Cells(j, 1).Select
ActiveSheet.Paste
j = j + 24
nbweekend = nbweekend + 1
End If
End If
Lig = Lig + 1
Next
i = i + 1
nbsemaine = 0
nbweekend = 0
End If
Application.ScreenUpdating = True
Wend
End Sub
A voir également:
- Problème extraction automatique de donné fonction find
- Fonction si et - Guide
- Logiciel de sauvegarde automatique gratuit - Guide
- Réponse automatique thunderbird - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Find and mount - Télécharger - Récupération de données
2 réponses
Bonjour,
mettre cette ligne:
a l'interieur de la boucle
et supprimer cette ligne
Lig = Lig + 1
question: cette cellule
mettre cette ligne:
Lig = ActiveSheet.Columns(1).Find(what:=criter1).Row
a l'interieur de la boucle
For Cptr = 1 To nbrejuste apres le For
et supprimer cette ligne
Lig = Lig + 1
question: cette cellule
Cells(Lig, 8)peut contenir autre chose que le jour de la semaine ?????
Pour le moment avec les modifications, ça tourne très longtemps ça fait planter mon ordi, mais je ne sais pas si ça marche ou non (je n'arrive pas à arrêter la macro sur mon ordi portable.
Pour la cellule de la colone 8, effectivement , elle ne comprend que des jour de la semaine. Mais mon but est d'écrire les jour ouvré et les jour deux weekend sur deux feuille différentes. De plus il s'agit de données qui peuvent être incomplète d'où la vérification de la Cells(lig, 7) =1 qui m'indique si j'ai bien le nombre de valeur voulue.
Il se peut donc que pour un identifiant j'ai qu'un mardi qui soit complet et pas de jour weekend mais pour un autre je peux avoir un lundi un samedi et un mercredi ect.... je veux donc prendre et copier coller 1 seul jour semaine et 1 seul jour weekend.
Pour la cellule de la colone 8, effectivement , elle ne comprend que des jour de la semaine. Mais mon but est d'écrire les jour ouvré et les jour deux weekend sur deux feuille différentes. De plus il s'agit de données qui peuvent être incomplète d'où la vérification de la Cells(lig, 7) =1 qui m'indique si j'ai bien le nombre de valeur voulue.
Il se peut donc que pour un identifiant j'ai qu'un mardi qui soit complet et pas de jour weekend mais pour un autre je peux avoir un lundi un samedi et un mercredi ect.... je veux donc prendre et copier coller 1 seul jour semaine et 1 seul jour weekend.