|
 Posté le 08/03/2010 @ 16:35 |
Nouvelle astucienne
| Bonjour,
J'essaye de trouver un code pour faire l'action suivante:
J'ai une worksheet appellée "Data", avec 7 colonnes.
J'ai une worksheet appellée "Country", où je dois copier certaines cellules de certaines lignes de "Data":
Dans les colonnes B, C, D, E de "Country" (à partir de la ligne 8), je dois copier les colonnes A, B, E, G de "Data" (à partir de la ligne 8 également) sous deux conditions:
1) le contenu de la colonne H de "Data" = Europe
2) le contenu de la colonne I de "Data" = le contenu de la cellule A4 de la worksheet "Country"
Je ne parviens vraiment pas à trouver un code qui fonctionne, merci de votre aide!!!!!!
|
|
|
|
|
|
Posté le 08/03/2010 à 19:07 |
Petit astucien
| tu ne sais pas nous up ton fichier?
Sinon il y a =somme.si(x) mais je ne sais pas si dans ta colonne il n'y a qu'une seule condition pour toute la colonne ou une condition par ligne Modifié par LnK6280 le 08/03/2010 19:08 |
|
Posté le 08/03/2010 à 22:58 |
| Message original par Douchka17
Bonjour,
J'essaye de trouver un code pour faire l'action suivante:
J'ai une worksheet appellée "Data", avec 7 colonnes.
J'ai une worksheet appellée "Country", où je dois copier certaines cellules de certaines lignes de "Data":
Dans les colonnes B, C, D, E de "Country" (à partir de la ligne 8), je dois copier les colonnes A, B, E, G de "Data" (à partir de la ligne 8 également) sous deux conditions:
1) le contenu de la colonne H de "Data" = Europe
2) le contenu de la colonne I de "Data" = le contenu de la cellule A4 de la worksheet "Country"
Je ne parviens vraiment pas à trouver un code qui fonctionne, merci de votre aide!!!!!!
Salut
une proposition :
Sub Douchka17() arr = Array("A", "B", "E", "G") For i% = 8 To Sheets("Data").Range(Sheets("Data").Range("A8"), Sheets("Data").Range("A8").End(xlDown)).Count + 8 If Sheets("Data").Range("H" & i).Value = "europe" And Sheets("Data").Range("I" & i).Value = Sheets("Country").Range("A4").Value Then For j% = 1 To 4 Sheets("Country").Range("A8").Offset(k, j).Value = Sheets("Data").Range(arr(j - 1) & i).Value Next k = k + 1 End If Next End Sub
|
|
Posté le 09/03/2010 à 15:59 |
Nouvelle astucienne
| Berylion,
Ca marche, c'est parfait!
Mais le souci c'est que quand je change la valeur en A4, si il n'y arien à copier (rien dans la feuille Data qui est = à la nouvelle valeur A4), il garde les anciennes lignes copiées.
Est-il possible de rajouter quelque chose pour que ça ne mettre "rien" (et que ça "efface" les lignes précédentes)?
Merci!!! |
|
Posté le 10/03/2010 à 09:59 |
| Douchka17 a écrit :
Berylion,
Ca marche, c'est parfait!
Mais le souci c'est que quand je change la valeur en A4, si il n'y arien à copier (rien dans la feuille Data qui est = à la nouvelle valeur A4), il garde les anciennes lignes copiées.
Est-il possible de rajouter quelque chose pour que ça ne mettre "rien" (et que ça "efface" les lignes précédentes)?
Merci!!!
Sub Douchka17() arr = Array("A", "B", "E", "G") Sheets("Country").Range(Sheets("Country").Range(Sheets("Country").Range("B8"), Sheets("Country").Range("B8").End(xlToRight)), Sheets("Country").Range(Sheets("Country").Range("B8"), Sheets("Country").Range("B8").End(xlToRight)).End(xlDown)).ClearContents For i% = 8 To Sheets("Data").Range(Sheets("Data").Range("A8"), Sheets("Data").Range("A8").End(xlDown)).Count + 8 If Sheets("Data").Range("H" & i).Value = "europe" And Sheets("Data").Range("I" & i).Value = Sheets("Country").Range("A4").Value Then For j = 1 To 4 Sheets("Country").Range("A8").Offset(k, j).Value = Sheets("Data").Range(arr(j - 1) & i).Value Next k = k + 1 End If Next End Sub

|
|