Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro affectation de valeur avec conditions

  • Initiateur de la discussion Initiateur de la discussion Elodie195
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Elodie195

XLDnaute Occasionnel
Bonjour,

Je sollicite votre aide concernant une macro Excel.

J'ai un tableau qui va de la colonne A à la colonne M.
En colonne A, j'ai des numéros de dossiers.
A partir de la colonne I j'ai des valeurs numériques jusqu'à la colonne M.

Chaque dossier est doublé, il est donc présent sur 2 lignes à chaque fois.
La seule différence et qu'il y a un code T1 pour le premier et code T10 pour le deuxième.

Le but de la macro serait d'affecter certaines valeurs du dossier T10 au dossier T1 et au final de supprimer les lignes avec le code T10 selon les conditions suivantes :

La macro parcoure les résultats numériques du dossier T1, et si la valeur est comprise entre 10 et 200, on la garde.
Dans le cas ou la valeur est inférieure à 10 ou supérieure à 200, il faut prendre la valeur du dossier du dessous avec le T10.

Au final, il faudrait se retrouver avec une seule ligne par dossier, sans aucun dossier T10 et où les valeurs numériques restantes respectent les conditions du dessus.

Merci d'avance de votre aide.

Bonne fin de journée.
 

Pièces jointes

Dernière édition:
Re : Macro affectation de valeur avec conditions

bonsoir

feuille = "Resultat à obtenir"
For ligne = 3 To 9 Step 2
ligne_res = Sheets(feuille).Cells(65536, 1).End(xlUp).Row + 1

For a = 1 To 13
Sheets(feuille).Cells(ligne_res, a) = Cells(ligne, a)
Next a

For col = 9 To 13

If Cells(ligne, col) < 10 Or Cells(ligne, col) > 200 Then Sheets(feuille).Cells(ligne_res, col) = Cells(ligne + 1, col)

d = Cells(ligne + 1, col)

Next col

Next ligne
 
Re : Macro affectation de valeur avec conditions

Bonsoir Elodie195, nicopec

une autre solution:

Code:
Sub MajLigne()
 Dim i As Long, j As Byte
 With Worksheets("TEST") ' à adapter
 For i = .Range("A" & .Rows.Count).End(xlUp).Row - 1 To 3 Step -2
    For j = 9 To 13
        If .Cells(i, j) < 10 Or .Cells(i, j) > 200 Then .Cells(i, j) = .Cells(i + 1, j)
    Next
    .Rows(i + 1).Delete
 Next
 End With
End Sub

A tester

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…