OVH Cloud OVH Cloud

Vlookup ou si

2 réponses
Avatar
Denys
Bonjour à tous,

J'aurais une autre question pour vous en regard à ma feuille Excel
comprenant près de 22 000 lignes....

Je souhaiterais que dans la colonne H les résultats s'affichent comme suit:

Si dans la colonne F la cellule est vide, et que dans la colonne G la
cellule correspondant est aussi vide alors écrire la valeur de la cellule
correspondant en colonne C dans la cellule correspondante de la colonne H.

Si dans la colonne F la cellule est vide, et que dans la colonne G la
cellule correspondant égale 2 alors écrire "paye" dans la cellule
correspondante de la colonne H.

Si dans la colonne F la cellule est vide, et que dans la colonne G la
cellule correspondant égale 1 ou 9 alors écrire "papier" dans la cellule
correspondante de la colonne H.

Etc... Rendu là je pourrai certainement figurer les autres possibilités....

Merci de bien vouloir m'aider

Denys

2 réponses

Avatar
PMO
Bonjour,

Voici une solution mais en VBA.
Copiez le code ci-dessous dans un module du VBE et
lancez la macro ColonneH.
Votre feuille doit être renseignée de la colonne A
à la colonne G sinon la procédure est stoppée.
ATTENTION: FAITES L ESSAI SUR UNE COPIE DE VOTRE CLASSEUR

'****************
Option Explicit
Sub ColonneH()
Dim R As Range
Dim var
Dim i&
Dim j&
Dim T()
Dim valeur
Dim lig&
On Error GoTo Erreur
Set R = ActiveSheet.UsedRange
var = R
lig& = R.Rows(1).Row
ReDim T(1 To UBound(var, 1), 1 To 1)
For i& = 1 To UBound(var, 1)
If IsEmpty(var(i&, 6)) And _
IsEmpty(var(i&, 7)) Then _
valeur = var(i&, 3)
If IsEmpty(var(i&, 6)) And _
var(i&, 7) = 2 Then _
valeur = "paye"
If IsEmpty(var(i&, 6)) And _
var(i&, 7) = 1 Or var(i&, 7) = 9 Then _
valeur = "papier"
T(i&, 1) = valeur
valeur = ""
Next i&
Range(Cells(lig&, 8), _
Cells(lig& - 1 + R.Rows.Count, 8)) = T
Erreur:
Set R = Nothing
End Sub
'***************

Cordialement.
--
PMO
Patrick Morange



Bonjour à tous,

J'aurais une autre question pour vous en regard à ma feuille Excel
comprenant près de 22 000 lignes....

Je souhaiterais que dans la colonne H les résultats s'affichent comme suit:

Si dans la colonne F la cellule est vide, et que dans la colonne G la
cellule correspondant est aussi vide alors écrire la valeur de la cellule
correspondant en colonne C dans la cellule correspondante de la colonne H.

Si dans la colonne F la cellule est vide, et que dans la colonne G la
cellule correspondant égale 2 alors écrire "paye" dans la cellule
correspondante de la colonne H.

Si dans la colonne F la cellule est vide, et que dans la colonne G la
cellule correspondant égale 1 ou 9 alors écrire "papier" dans la cellule
correspondante de la colonne H.

Etc... Rendu là je pourrai certainement figurer les autres possibilités....

Merci de bien vouloir m'aider

Denys



Avatar
Denys
Bonjour Patrick,

Wow !!! Je n'aurais jamais pu trouver ça tout seul... Ça fonctionne à la
perfection...
Quel temps tu m'as sauvé !!!

Merci infiniment..... Je boirai un p'tit verre de rouge à ta santé !!!!

Bonne fin de semaine

Denys


Bonjour,

Voici une solution mais en VBA.
Copiez le code ci-dessous dans un module du VBE et
lancez la macro ColonneH.
Votre feuille doit être renseignée de la colonne A
à la colonne G sinon la procédure est stoppée.
ATTENTION: FAITES L ESSAI SUR UNE COPIE DE VOTRE CLASSEUR

'****************
Option Explicit
Sub ColonneH()
Dim R As Range
Dim var
Dim i&
Dim j&
Dim T()
Dim valeur
Dim lig&
On Error GoTo Erreur
Set R = ActiveSheet.UsedRange
var = R
lig& = R.Rows(1).Row
ReDim T(1 To UBound(var, 1), 1 To 1)
For i& = 1 To UBound(var, 1)
If IsEmpty(var(i&, 6)) And _
IsEmpty(var(i&, 7)) Then _
valeur = var(i&, 3)
If IsEmpty(var(i&, 6)) And _
var(i&, 7) = 2 Then _
valeur = "paye"
If IsEmpty(var(i&, 6)) And _
var(i&, 7) = 1 Or var(i&, 7) = 9 Then _
valeur = "papier"
T(i&, 1) = valeur
valeur = ""
Next i&
Range(Cells(lig&, 8), _
Cells(lig& - 1 + R.Rows.Count, 8)) = T
Erreur:
Set R = Nothing
End Sub
'***************

Cordialement.
--
PMO
Patrick Morange



Bonjour à tous,

J'aurais une autre question pour vous en regard à ma feuille Excel
comprenant près de 22 000 lignes....

Je souhaiterais que dans la colonne H les résultats s'affichent comme suit:

Si dans la colonne F la cellule est vide, et que dans la colonne G la
cellule correspondant est aussi vide alors écrire la valeur de la cellule
correspondant en colonne C dans la cellule correspondante de la colonne H.

Si dans la colonne F la cellule est vide, et que dans la colonne G la
cellule correspondant égale 2 alors écrire "paye" dans la cellule
correspondante de la colonne H.

Si dans la colonne F la cellule est vide, et que dans la colonne G la
cellule correspondant égale 1 ou 9 alors écrire "papier" dans la cellule
correspondante de la colonne H.

Etc... Rendu là je pourrai certainement figurer les autres possibilités....

Merci de bien vouloir m'aider

Denys