VB Excel: Boucle For Next ne s'arrête pas [Résolu]

djokalif 9 Messages postés samedi 29 septembre 2007Date d'inscription 7 janvier 2011 Dernière intervention - 29 déc. 2010 à 21:01 - Dernière réponse : djokalif 9 Messages postés samedi 29 septembre 2007Date d'inscription 7 janvier 2011 Dernière intervention
- 30 déc. 2010 à 16:06
Bonjour,

Je suis confronté au même problème que Hadriennoel mais j'ai du mal à mettre en application les conseil de Jack.
Je conçois un planing:

Dans la feuil("ResultatRecherche") je sélectionne un nom de salarié dont la source est de feuil("Liste des salarié") puis validé par un bouton( voir le code ci-dessous).

Le code doit parcourir les feuils qui sont crées automatiquement au moment où on ajoute un nouveau et porte le nom correspondant comme feuil("NomPrenom")

Mon problème est que la boucle ne s'arrête pas, sa flash. J'ai besoin d'aide merci d'avance.

Code:

Private Sub CommandButton1_Click()
For i = 1 To Worksheets.Count

'MsgBox (Worksheets(i).Name)

If Feuil8.Range("A3") = Worksheets(i).Name Then
'Copier
Worksheets(i).Select
Selection.Range("A5:AN113").Copy

'Coller
Worksheets("ResultatRecherche").Select
Range("A5:AN113").Select
ActiveSheet.Paste
Exit For
Exit Sub
End If
Next i

End Sub
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
jordane45 21451 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 25 juin 2018 Dernière intervention - 30 déc. 2010 à 07:30
3
Merci
Bonjour,
En regardant vite fait, j'ai apporté une ou deux petite correction à ton code.
Essayes celui-ci :
Private Sub CommandButton1_Click()
'Désactive le rafraichissement écran
Application.ScreenUpdating = False

'Boucle..................
For i = 1 To Worksheets.Count

'MsgBox (Worksheets(i).Name)

If Feuil8.Range("A3").Value = Worksheets(i).Name Then
'Copier
Worksheets(i).Select
Selection.Range("A5:AN113").Copy

'Coller
Worksheets("ResultatRecherche").Select
Worksheets("ResultatRecherche").Range("A5:AN113").Select
ActiveSheet.Paste
Exit For
Exit Sub
End If
Next i ' Suite de la bouclue....

'réactive le rafraichissement écran
Application.ScreenUpdating = True
End Sub



PS: Lorsque tu copie ton code sur le forum, utilises les balises de code (le troisieme bouton en partant de la droite

Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI

Merci jordane45 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 121 internautes ce mois-ci

Commenter la réponse de jordane45
djokalif 9 Messages postés samedi 29 septembre 2007Date d'inscription 7 janvier 2011 Dernière intervention - 30 déc. 2010 à 16:06
0
Merci
Je vous remercie infiniment, le code marche.

après visualisation de mon (copier coller) je constate que la plage copiée n'est pas stable. au lieu de sélectionner Range("A5:AN113") et copié, il décale carrément la plage à sélectionnée vers le Range("E5:AP113")

En deuxième point, comment mettre à jour la feuil correspondante feuil("NomPrenom") les modifications(des champs colorés apportées à la plage depuis feuil("ResultatRecherche")?

Comment générer un une série de feuils en parcourant une liste de nom qui sera le nom de la feuil, voici ce que j'ai fais mais sa ne marche pas!!!!
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

'Désactive le rafraichissement écran
Application.ScreenUpdating = False

For i = 2 To 39 'A la dernière ligne remplie
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = Feuil2.Cells(i, 4).Value + Feuil2.Cells(i, 5).Value
Next
'réactive le rafraichissement écran
Application.ScreenUpdating = True
End Sub


Merci d'avance pour tout aides.
Cordialement
Commenter la réponse de djokalif

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.