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

if then else avec cellule variable

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 !

titiborregan5

XLDnaute Accro
Bonjour à tous,
je suis confronté à une difficulté dans mon tableau.

Je souhaite qu'il vérifie si la cellule A2 est = à A3 :
si non: on vérifie A3 et A4 et ainsi de suite
si oui: on insère une ligne en dessous de A3, on y copie qq valeurs (cf fichier joint) puis on vérifie le nouveau A4 et A5!

J'arrive à faire cela en lui disant A2, A3 etc...
Mais en lui faisant faire automatique une fois une condition réalisée.


Merci de votre aide,
je galère sur le for / if then else / next, je crois que c'est comme cela qu'il fallait faire!


Thibault
 

Pièces jointes

Re : if then else avec cellule variable

bonsoir,
Je précise que je n'ai strictement rien compris, mais bon une piste
Code:
Sub Bouton1_Clic()
i = 2
Do
    If Cells(i, 1) = Cells(i + 1, 1) Then
        i = i + 1
        Rows(i).Insert
        Cells(i, 1) = Cells(i - 1, 1)
        Cells(i, 7) = "livraison"
        Cells(i, 6).Value = Cells(i - 1, 1)
    End If
    i = i + 1
Loop Until Cells(i, 1) = ""
End Sub
A+
kjin
 
Re : if then else avec cellule variable

Bonjour,

J'aurais pensé que le code souhaité était plutôt :
Code:
Sub Bouton1_Clic()
i = 2
Do
    If Cells(i, 1) <> Cells(i + 1, 1) Then
        i = i + 1
        Rows(i).Insert
        Cells(i, 1) = Cells(i - 1, 1)
        Cells(i, 7) = "livraison"
        Cells(i, 6).Value = Cells(i - 1, 1)
        Else
    End If
    i = i + 1
Loop Until Cells(i, 1) = ""
End Sub
mais je peux me tromper !

HTH
 
Re : if then else avec cellule variable

Bonjour à kjin et gardien de phare,
merci pour vos réponses.
Ca a l'air de marcher, j'ai juste changé
Code:
Cells(i, 6).Value = Cells(i - 1, 1)
par la cellule d'origine que je voulais (i-1,2) et c'est ok.
Je vais maintenant tester sur mon fichier réel et ses 8000 lignes...😕 j'ai peur!

Merci encore à vous 2!
Thibault
 
Re : if then else avec cellule variable

Re,
nouvelle question.
la macro pour l'instant fait :
1. insérer une ligne quand on change d'id (colonne A)
2. écrire "livraison" dans la colonne type de la nouvelle ligne
3. récupérer la valeur de la colonne 2 de la ligne -1 pour la noter dans la colonne prix unitaire de la nouvelle ligne (afin de pouvoir avoir la livraison dans mon TCD).

Cette 3ème étape était valable lorsque le prix de livraison était indiqué en dernière ligne.
Mais ce n'est pas tjs le cas, et il arrive qu'il soit indiqué qq lignes au dessus me renvoyant donc un cout de livraison = à 0.
Dans ma base le cout est indiqué par la mention colissimo.
Est il possible d'inclure dans la macro une recherche du type : si dans l'intervalle de l'id il trouve colissimo en colonne B, alors le montant indiqué en colonne C se met dans la nouvelle ligne dans la colonne prix unitaire ?

Je suis désolé de ne pas être clair ... 😕 je vous joins un fichier tout de même, en espérant que vous me comprendrez!

Sinon je ré expliquerai!!

Merci d'avance,
Cordialement
 

Pièces jointes

Re : if then else avec cellule variable

Re le forum!
j'ai essayé plusieurs raisonnements mais je n'y parviens pas. Et je ne sais pas quelle piste creuser...

Est il possible de faire compte (countif que j'ai réussi) le nombre de fois où il trouve ma référence pour chercher dans cette plage de cellule le mot "colissimo" et renvoyer le montant à coté?

Ou faut il passer par une autre solution?
 
Re : if then else avec cellule variable

Re, un petit dernier post avant le week end...
Sur ce fichier joint j'y suis presque mais je n'arrive pas à faire la double condition de l'id et du colissimo.
J'arrive à renvoyer le bon premier montant parce qu'il est "figé" mais pas les autres.
De plus j'arrive pas à aller jusqu'au bout de mes lignes car la 1ère variable déterminées au début doit s'incrémenter de 1à chaque insertion de ligne!

Merci d'avance, et bon week-end à vous!

Cordialement,
 

Pièces jointes

Re : if then else avec cellule variable

Bonjour,

Tu peux essayer comme cela
Code:
Sub Bouton2_Clic()
Dim DerLigne As Long, CelDeb As Long
Dim NoCom As String, Liv As String
Dim Montant As Double
    DerLigne = Range("A" & Rows.Count).End(xlUp).Row
    CelDeb = 2
    While CelDeb <= DerLigne
        NoCom = Range("A" & CelDeb)
        j = WorksheetFunction.CountIf(Range("A:A"), Range("A" & CelDeb))
        For i = CelDeb To CelDeb + j - 1
            If Range("B" & i) = "colissimo" Then
                Liv = "livraison"
                Montant = Range("C" & i)
                Exit For
            End If
        Next i
        CelDeb = CelDeb + j
        Rows(CelDeb).Insert
        Cells(CelDeb, 1) = NoCom 'renvoie le numéro de commande
        Cells(CelDeb, 8) = Liv 'renseigne qu'il s'agit de la livraison
        Cells(CelDeb, 7).Value = Montant 'renvoie le Montant
        CelDeb = CelDeb + 1
        DerLigne = DerLigne + 1
        Liv = ""
        Montant = 0
    Wend
End Sub

A+
 
Re : if then else avec cellule variable

Bonjour Frangy,
merci pour ta réponse.
Cela marche sur ton exemple mais pas sur mon fichier réel.
Il ne m'écrit pas "livraison" et me met 0 pour le montant.
Je continue de plancher pour voir si je n'ai pas mal adapté le code ou mal énoncé mon pb.

Encore merci et désolé pour le retard!
Thibault
 
Re : if then else avec cellule variable

bonsoir,
@ gardien de phare : what ' Else ?!
Une autre version
Code:
Sub Bouton1_Clic()
i = 2
Do
    If Cells(i, 2) = "Colissimo" Or x = "" Then x = Cells(i, 3)
    If Cells(i, 1) <> Cells(i + 1, 1) Then
        i = i + 1
        Rows(i).Insert
        Cells(i, 1) = Cells(i - 1, 1)
        Cells(i, 7) = x
        Cells(i, 8) = "Livraison"
        x = ""
    End If
    i = i + 1
Loop Until Cells(i, 1) = ""
End Sub
A+
kjin
 

Pièces jointes

- 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

Réponses
3
Affichages
248
Réponses
0
Affichages
377
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…