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

Messages postés
9
Date d'inscription
samedi 29 septembre 2007
Dernière intervention
7 janvier 2011
- - Dernière réponse : djokalif
Messages postés
9
Date d'inscription
samedi 29 septembre 2007
Dernière intervention
7 janvier 2011
- 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
Messages postés
23596
Date d'inscription
mercredi 22 octobre 2003
Statut
Contributeur
Dernière intervention
12 décembre 2018
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

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de jordane45
Messages postés
9
Date d'inscription
samedi 29 septembre 2007
Dernière intervention
7 janvier 2011
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.