copier/coller une ligne vers une autre feuille sous condition

jbballeyguier

XLDnaute Nouveau
Bonjour à tous !

J'ai un léger soucis avec une macro, dont le but est de copier certaines ligne d'une feuille vers une autre, si cette ligne remplit une condition.

Actuellement, j'arrive à copier les lignes... mon soucis est de les coller dans l'ordre que je veux dans la feuille de destination.

Ma macro définit deux variable : une pour la ligne de la feuille d'origine à copier (i), l'autre pour la ligne de la feuille destination où les données doivent être collées (j).
N'ayant pas trouvé comment copier/coller une ligne entièrement j'utilise Range.
La macro vérifie qu'une condition est vérifiée dans la colonne F, puis copie le Range de A à G de la ligne correspondante :

Code:
Sub Macro1()
    Sheets("Avancement_VNR_Editions").Activate
    
    Dim i As Integer
    i = 2
    Dim j As Integer
    j = 2
        Do While Cells(i, 6) <> ""
            If Range("$F$" & i & "") = "VNR" Then
                Range("$A$" & i & ":$G$" & i & "").Copy Sheets("Avancement_Cloture_Editions").Range("$A$" & j & ":$G$" & j & "")
            End If
            i = i + 1
            j = j + 1
        Loop
End Sub

Le problème est que je vais peut être devoir copier les lignes 21,42,78 et 86... mais j'aimerai qu'elles se collent à la suite dans les lignes 1,2,3 et 4... actuellement les lignes se copient dans les lignes 21,42,78 et 86 de la feuille de destination. Ce qui est particulièrement ennuyeux car je ne saurai jamais où les données vont apparaître, or ces données sont utilisées par une autre macro...

Une idée ? Merci d'avance ;)
 

suistrop

XLDnaute Impliqué
Re : copier/coller une ligne vers une autre feuille sous condition

salut,
je ne peux pas tester ce que je te propose ...
mais essai ca :

Code:
Sub Macro1()
Sheets("Avancement_VNR_Editions").Activate
 
Dim i As Integer
i = 2
Dim j As Integer
j = 2
Do While Cells(i, 6) <> ""
If Range("$F$" & i & "") = "VNR" Then
row(i).Copy Sheets("Avancement_Cloture_Editions").row(j)
j = j + 1
End If
i = i + 1
Loop
End Sub
row(i) pour la ligne a tester !

essai de mettre le fichier c est plus simple !

+++
 

Bebere

XLDnaute Barbatruc
Re : copier/coller une ligne vers une autre feuille sous condition

bonsoir jbballeyguier,suistrop


non testé,incrémente j quand la condition est vraie


Sub Macro1()
Sheets("Avancement_VNR_Editions").Activate

Dim i As Integer
i = 2
Dim j As Integer
j = 2
Do While Cells(i, 6) <> ""
If Range("$F$" & i) = "VNR" Then
Range("$A$" & i & ":$G$" & i).Copy Sheets("Avancement_Cloture_Editions").Range("$A$" & j & ":$G$" & j)
j = j + 1
End If
i = i + 1

Loop
End Sub

à bientôt
 

mapatos

XLDnaute Nouveau
Re : copier/coller une ligne vers une autre feuille sous condition

bonjour,
j'ai un problème identique que je n'arrive pas à régler malgré l'utilisation de vos macro, voici ma demande :

->J'ai créé une condition : lorsque l'utilisateur sélectionne son nom
->dans
le menu déroulant, la colonne date se met automatiquement à jour.
Je voudrai, que lorsque l'utilisateur complète sur la même ligne la cellule remarque (colonne D), cela verrouille les colonnes A, B, C, D de la ligne.
Ainsi les autres utilisateurs ne pourront plus modifier la cellule et aussi, la date verrouillée ne se mettra plus à jour au redémarrage du fichier.

->Deuxième demande : je voudrai que lorsque la cellule "urgent" apparait
(j'ai créé une condition pour que cela apparaisse au bout de 15 jours lorsque la remarque n'est pas réalisée), que la ligne soit recopiée en feuille urgent.
Attention chaque feuille correspond à un mois de l'année et doit répondre également à cette condition.

Merci de votre aide.
 

Pièces jointes

  • maincouranteessai.xls
    92.5 KB · Affichages: 82
  • maincouranteessai.xls
    92.5 KB · Affichages: 103
  • maincouranteessai.xls
    92.5 KB · Affichages: 115

Discussions similaires

Réponses
56
Affichages
1 K
Réponses
7
Affichages
375

Statistiques des forums

Discussions
312 333
Messages
2 087 371
Membres
103 528
dernier inscrit
maro