Copier cellule en fonction de valeur

Jacky1002 Messages postés 94 Date d'inscription mardi 11 mai 2010 Statut Membre Dernière intervention 3 avril 2011 - 2 juin 2010 à 13:33
Jacky1002 Messages postés 94 Date d'inscription mardi 11 mai 2010 Statut Membre Dernière intervention 3 avril 2011 - 2 juin 2010 à 16:07
bonjour à tous

j'aurais besoin d'un conseil

j'ai un tableau excel qui va me servir à éditer des demandes d'intervention de maintenance.

Sur la feuille 1 nommée "EMP"
en colonne A j'ai le nom des opérations à effectuer. ensuite les 52 colonne suivantes corresponde aux n° de semaines, et au croisement du n° de semaine et de l'opération à effectuer j'ai un X ou non en fonction que l'opération est à effectuer ou non dans la semaine.

Sur une seconde feuille nommée "DI" je rentre le n° de semaine de mon choix dans la cellule A1 par exemple et en fonction de cette valeur j'aimerais pourvoir ressortir les opérations à effectuer dans la semaine (opération pour laquelle il y a un X sur l'interesection ligne de l'opération et colonne de la semaine renseignée en A1)

jai penser à utiliser un truc genre if A1="B1" then copier les celule de la colonne A pour lesquelle il y a un X en colonne B ( de la meme ligne)else if A1="C1" then copier les celule de la colonne A pour lesquelles il y a un X en colonne C else if A1="D1" then copier les celule de la colonne A pour lesquelle il y a un X en colonne D.... end if end if end if.... cellule a copier dans la dernière ligne vide de la colonne A de la feuille DI (pour ca ca va je connais la syntaxe (Sheets("DI").range("A" & (Sheets("DI").range("A65536").End(xlUp).Row+1)

je suis ouvert a toutes propositions

merci de votre aide
Jacky

1 réponse

Jacky1002 Messages postés 94 Date d'inscription mardi 11 mai 2010 Statut Membre Dernière intervention 3 avril 2011
2 juin 2010 à 16:07
re bonjour

jai trouver ceci

Sub DI()
Select Case Sheets("DI").Range("A1").Value
Case "1"
For i = 3 To 101
If Sheets("EMP").Range("B" & i) = "X" Then
Sheets("DI").Range("A" & Sheets("DI").Range("A65536").End(xlUp).Row + 1).Value = Sheets("EMP").Range("A" & i).Value
Else
End If
Next
End Select
End Sub


le petit hic cest que je vais devoir faire 52 "case"
vous avez eut etre une solution pour ne pas avoir a faire cela par contre un desième hic cest que avec case "1" je charche les X dans la colonne B mais avec case "2" je devrais la chercher dans la colonne C avec case "3" je devrais la chercher dans la colonne D....Une idée??
jai deja essayer de mettre une boucle for-next avec mon for x=1 to 52 sur la ligne au dessus de select case.. et le next en dessous de end select
et bien sur je change le case"1" en case "x" mais ca ne marche pas.

merci
Jacky
0
Rejoignez-nous