VB Excel: Boucle For Next ne s'arrête pas

Résolu
djokalif Messages postés 9 Date d'inscription samedi 29 septembre 2007 Statut Membre Dernière intervention 7 janvier 2011 - 29 déc. 2010 à 21:01
djokalif Messages postés 9 Date d'inscription samedi 29 septembre 2007 Statut Membre 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

2 réponses

jordane45 Messages postés 38151 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 mai 2024 344
30 déc. 2010 à 07:30
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
3
djokalif Messages postés 9 Date d'inscription samedi 29 septembre 2007 Statut Membre Dernière intervention 7 janvier 2011
30 déc. 2010 à 16:06
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
0
Rejoignez-nous