Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/10/2011, 17h11   #1
Invité de passage
 
Inscription : octobre 2011
Messages : 2
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 2
Points : 1
Points : 1
Bonjour, je cherche à créer une boucle avec 2 variables dont la 2eme est le numéro d'une feuille dans mon fichier.
je voudrais dans un premier temps que cela copie la valeur E2 de la première feuille contenant (FS) et que cela la colle dans la cellule B4, puis la valeur B2 dans la cellule C4 etc...
PUIS que cela se boucle pour chaque feuille contenant "(FS)"ou finissant par "(FS)" peu importe
(ou au pire je sais que les feuilles contenant "(FS)" seront toutes les feuilles paires de mon fichiers (2,4,6,...,30))
j'en suis là pour le moment mais toujours pas de résultat

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Dim ws
For Each ws In Worksheets
If Right(Sheets(ws).Name, 4) = "(FS)" Then
           Sheets(ws).Select
 Dim K As Integer
    For K = 4 To 18
Sheets("Récapitulatif").Range("B" & K) = Sheets(ws).Range("E2").Value 'Nom du client'
Sheets("Récapitulatif").Range("C" & K) = Sheets(ws).Range("B2").Value 'N° de dossier''
 
Next K
       Else
       End If
    Next ws
merci d'avance pour votre aide.
PS: pour le copier/coller d'une feuille c'est bon, c'est pour la boucle des feuilles suivantes que ça coince.

Pour être plus clair je pense, je voudrais afin d'éviter d'écrire le code (que j'ai allégé sinon il y a de B à I) pour chaque ligne (donc 15 fois) faire une boucle pour les lignes 4 à 18
Les feuilles à boucler sont les feuilles 2,4,6,...,30 (toutes les feuilles paires)
PS: pour infos, les feuilles paires contiennent toutes "(FS)" à la fin de leur nom

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
'Ligne 4'
Dim K As Integer
    For K = 4 To 18
Sheets("Récapitulatif").Range("B" & K) = Sheets(2).Range("E2").Value 'Nom du client'
Sheets("Récapitulatif").Range("C" & K) = Sheets(2).Range("B2").Value 'N° de dossier''
Next K
 
'Ligne 5'
Dim K As Integer
    For K = 4 To 18
Sheets("Récapitulatif").Range("B" & K) = Sheets(4).Range("E2").Value 'Nom du client'
Sheets("Récapitulatif").Range("C" & K) = Sheets(4).Range("B2").Value 'N° de dossier''
Next K
 
'et ça jusqu'à la ligne 18'
micapilote est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 22h09   #2
Invité de passage
 
Inscription : octobre 2011
Messages : 2
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 2
Points : 1
Points : 1
Code :
1
2
3
4
5
6
7
8
Dim K As Integer, dim i as integer
 
For K = 4 to 18
i = i + 2
Sheets("Récapitulatif").Range("B" & K) = Sheets(i).Range("E2").Value 'Nom du client'
Sheets("Récapitulatif").Range("C" & K) = Sheets(i).Range("B2").Value 'N° de dossier''
 
next k
micapilote est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 23h06   #3
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Ou bien
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub Recap()
Dim Ws As Worksheet
Dim k As Byte
 
Application.ScreenUpdating = False
With Sheets("Récapitulatif")
    k = 4
    For Each Ws In ThisWorkbook.Worksheets
        If InStr(Ws.Name, "(FS)") > 0 Then
            .Range("B" & k).Value = Ws.Range("E2").Value   'Nom du client'
            .Range("C" & k) = Ws.Range("B2").Value         'N° de dossier''
            k = k + 1
        End If
    Next Ws
End With
End Sub
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h29.


 
 
 
 
Partenaires

Hébergement Web