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...
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
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
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.