Croiser colonnes avec conditions
Bonjour chers amis
Je suis vraiment à fond sur vba actuellement mais mon niveau reste limité.
j'ai besoin d'aide sur une macro que je develeoppe actuellement.
je dispose d'un fichier1 sur lequel je souhaiterais recuperer toutes les opérations a partir du nom de cellules opérations modifiées sur la colonne A .
les conditions sont les suivantes :
1ere condition
Parcourir la colonne S à partir de la ligne opération modiffiées et il faudra automatiquement ajouter tirait de 6 (-) puis 1 sur chaque opération de la colonne A.
2eme condition
Parcourir la colonne T à partir de la ligne opération modiffiées et il faudra automatiquement ajouter tirait de 6 (-) puis 2 sur chaque opération de la colonne A.
tout ceci je veux le mettre sur un classeur et dans la colonne A
donc a la fin je vais me retouver avec une colonne A avec des opérations de la sorte :
3580
4620-1 et 4620-2 (il faudra mettre l'opération de la phase 2 sur la meme colonne A que la phase1
4649
4656
4666
4857
4868-1 et 4868-2
4872-1 et 4872-2
4926
4948
4995
5021
5023
5072
5135
je suis bloqué et je vous remerci de votre aide
Bonjour,
Proposition pour copier dans la colonne A de la Feuil1 à vous de l'adapter à vos besoins
Sub Releve_Ops()
Dim N_ops As Integer, Ph1 As Date, Ph2 As Date, lg As Integer
Dim cel As Range
Sheets("ops").Activate
lg = 0
For Each cel In Range("No_op")
lg = lg + 1
If cel.Offset(0, 18) <> "" And cel.Offset(0, 19) <> "" Then
Sheets("Feuil1").Range("A" & lg) = cel & "-1 et " & cel & "-2"
Else
Sheets("Feuil1").Range("A" & lg) = cel
End If
Next cel
End SubNo_op est le nom la plage des N° d'opérations que j'ai nommée
robjam a écrit :Bonjour,
Proposition pour copier dans la colonne A de la Feuil1 à vous de l'adapter à vos besoins
Sub Releve_Ops() Dim N_ops As Integer, Ph1 As Date, Ph2 As Date, lg As Integer Dim cel As Range Sheets("ops").Activate lg = 0 For Each cel In Range("No_op") lg = lg + 1 If cel.Offset(0, 18) <> "" And cel.Offset(0, 19) <> "" Then Sheets("Feuil1").Range("A" & lg) = cel & "-1 et " & cel & "-2" Else Sheets("Feuil1").Range("A" & lg) = cel End If Next cel End SubNo_op est le nom la plage des N° d'opérations que j'ai nommée
Bonjour robjam ,
je te remercie pour ton aide .
j'ai adapté en fonction de mon fichier mais il y a un probleme sur la ligne Range("No_op")
je comprends pas No-op
car je dois commencé à partir d"opérations modifées sur mon fichier
merci de m'éclaircir ce point si possible
merci a toi
Bonjour,
Comme je l'ai dit dans mon message (à la fin) c'est le nom de la plage de cellules de la feuille Ops colonne A à partir de la ligne en dessous de Opérations modifiées.
Attention ce n'est pas No-op mais bien No_op
Cette plage est dynamique, elle s'allonge automatiquement si on ajoute des données en colonne A
Voir dans le fichier joint Onglet Formules > Gestionnaire de noms
je voudrais de l'aide sur comment parcourir cette colonne A à partir de la ligne Opérations modifiées
et récuperer toutes ces lignes
colonne A
N° Opération
Nouvelles opérations
6309
6310
6311
Opérations annulées
Opérations modifiées
3580
4620
4649
4656
4666
4857
4868
4872
4926
Re,
Je ne comprends pas ce que vous voulez dire. Le programme que je vous ai mis fait cela, la boucle For each Cel in Range("No_op") commence à la ligne en dessous de Opérations modifiées.
Si vous avez regardé le fichier joint vous avez vu en feuil1 la liste qui commence par 3580.
3580
4620-1 et 4620-2
4649
4656
4666
4857
4868-1 et 4868-2
4872-1 et 4872-2
4926
4948
4995
5021
5023
5072
5135
5168
5183
5250
5389
5393
5396
5545
5546
5547
5563
5631
6053
6276
6277
6278
La plage que j'ai nommé No_op commence en A20 jusqu'à A49 de la feuille Ops
J'ai l'impression que vous ne savez pas ce que c'est qu'une plage nommée. Regardez dans l'aide d'excel vous y trouverez des explications. Ou ici sur le forum dans les cours