![]() |
|
Forum
|
|
|
#1 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: juin 2006
Messages: 201
|
Bonjour a tous
Voila j'ai un petit problème lors de la réalisation de ma boucle de copie. Code:
Dim s As Worksheet
For p = 1 To NbTr
Set s = Sheets.Add(After:=Sheets(Sheets.Count))
s.Name = "Feuil" & 3 + p
Next p
'Copie des données de la tranche x à la feuille x+3
Dim wS As Worksheet 'Feuille source
Dim wD As Worksheet 'Feuille destination
'Dim Derlig As Integer 'Derniere ligne fichier source
'Affecte les feuilles sources/destination (de la copie)
Set wS = Sheets("Feuil3")
Set wD = Sheets("Feuil" & 3 + NbTr)
For t = 1 To NbTr
J = 1
'Determine derniere ligne fichier source
Derlig = wS.Cells(65535, 5).End(xlUp).Row 'Derniére ligne rempli colonne 5 fichier source
If Derlig < 2 Then
MsgBox "Aucune données ", vbCritical
Exit Sub
End If
' Boucle sur lignes fichier source
For I = 2 To Derlig
If wS.Cells(I, 2) = Secteur And wS.Cells(I, 5) = NbTr Then
'Copie ...
wD.Rows(J).Value = wS.Rows(I).Value
J = J + 1
End If
Next I
Next t
Il devrait, copier les données ou NbTr=1 sur la feuille 4 NbTr=2 sur la feuille 5 ... NbTr=Xsur la feuille 3+NbTr Voila en gros le principe Mais ma macro me copie uniquement sur la dernière page donc si NbTr=5, il me copie les élément de la tranche5, sur la feuille 8 alors que je voudaris avoir la copie de toutes les autres tranches précédentes sur les feuilles amont. Si quelqu'un a une solution pour moi. Merci |
|
|
|
| ANNONCES | |||
|
|
|
|
#3 (permalink) |
|
XLDnaute Barbatruc
|
Salut baptbapt,
Il manque un morceau de code ou pas? Parce que tu utilises la variable NbTr et tu ne la définit nul part, elle vaut donc toujours 0. @+ Edition : Arfff, salut Didier, le temps de taper sans avoir rafraichit la page...
__________________
« Connaître son ignorance est la meilleure part de la connaissance. » ![]() |
|
|
|
|
|
#4 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: juin 2006
Messages: 201
|
Salut porcinet82,dg62
NbTr est une variable que je défini plus tot dans ma macro C'est un nombre que j'initialise a la valeur que je veu. Set wD = Sheets("Feuil" & 3 + NbTr) et oui je suis sur que mon erreur vien de la. car wD sera égale à la dernière valeur, et n'évoluera pas Avec le code complet, c'est toujours mieu http://cjoint.com/?hypK4SAsrK |
|
|
|
|
|
#6 (permalink) |
|
XLDnaute Barbatruc
|
re,
Pas sur du tout mais je dirais quelque chose du genre : Code PHP:
Edition : Rhooo, c'est pas possible ca, 2 fois que tu es plus est rapide que moi, ca commence a bien faire ![]()
__________________
« Connaître son ignorance est la meilleure part de la connaissance. » ![]() |
|
|
|
|
|
#8 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: juin 2006
Messages: 201
|
Code:
'Saisie du nombre de tranches d'analyse
Do
NbTr = InputBox("Entrez une valeur de 1 à 256", "NOMBRE DE TRANCHES DE 2 MINUTES", 10)
Loop Until (Val(NbTr) > 0) And (Val(NbTr) < 257)
'Création des feuilles supplémentaires pour les intervals
Dim s As Worksheet
For p = 1 To NbTr
Set s = Sheets.Add(After:=Sheets(Sheets.Count))
s.Name = "Feuil" & 3 + p
Next p
'Copie des données de la tranche 1 à la feuille 4
Dim wS As Worksheet 'Feuille source
Dim wD As Worksheet 'Feuille destination
'Dim Derlig As Integer 'Derniere ligne fichier source
'Affecte les feuilles sources/destination (de la copie)
Set wS = Sheets("Feuil3")
Set wD = Sheets("Feuil4")
J = 1
'Determine derniere ligne fichier source
Derlig = wS.Cells(65535, 5).End(xlUp).Row 'Derniére ligne rempli colonne 5 fichier source
If Derlig < 2 Then
MsgBox "Aucune données ", vbCritical
Exit Sub
End If
' Boucle sur lignes fichier source
For I = 2 To Derlig
If wS.Cells(I, 2) = Secteur And wS.Cells(I, 5) = 1 Then
'Copie ...
wD.Rows(J).Value = wS.Rows(I).Value
J = J + 1
End If
Next I
Je prenais les éléments de la feuille3 et je copie en 4 les éléments ayant la valeur1 en colonne 5 de la feuille3 1 étant égale à la première valeur de NbTr J'ai voulu mettre une boucle pour faire la meme chose sur les autres feuilles que j'ai crée. Mais rien ni fait |
|
|
|
|
|
#9 (permalink) |
|
XLDnaute Accro
|
re
Code:
For t = 1 To NbTr
Set wD = Sheets("Feuil" & 3 + t)
J = 1
'Determine derniere ligne fichier source
Derlig = wS.Cells(65535, 5).End(xlUp).Row 'Derniére ligne rempli colonne 5 fichier source
If Derlig < 2 Then
MsgBox "Aucune données ", vbCritical
Exit Sub
End If
' Boucle sur lignes fichier source
For I = 2 To Derlig
If wS.Cells(I, 2) = Secteur And wS.Cells(I, 5) = NbTr Then
'Copie ...
wD.Rows(J).Value = wS.Rows(I).Value
J = J + 1
End If
Next I
Set wD = Nothing
Next t
__________________
@+ ![]()
|
|
|
|
|
|
#11 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: juin 2006
Messages: 201
|
Merci Didier
Problème résolut. Enfin celui la. Yen a d'autre, beaucoup d'autre. Mais sa je verai demain, le boulot, c'est fini pour aujourd'hui. Merci Didier, Merci Porcinet |
|
|
|
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|
Discussions similaires
|
||||
| Discussion | Auteur | Forum | Réponses | Dernier message |
| copie multiple de ligne | alma | Forum Excel Downloads - Archives | 1 | 22/09/2004 16h13 |
| Somme au sein même d'une cellule? | Kiko | Forum Excel Downloads - Archives | 8 | 30/07/2004 10h07 |
| boucle multiple et compteur sur .Find | albert | Forum Excel Downloads - Archives | 3 | 25/05/2004 19h31 |
| selection au sein d'un boucle | Reeaz | Forum Excel Downloads - Archives | 3 | 27/06/2003 18h20 |
| Selection multiple dans une boucle for | Pascal | Forum Excel Downloads - Archives | 3 | 29/07/2002 11h56 |