Microsoft 365 SI cellule vide dans la colonne A

Moreno076

XLDnaute Impliqué
Bonsoir le forum

Je souhaiterais adapter cette formule.
Si dans la colonne A case vide alors on applique cette formule et on ajoute en plus quantité de la colonne I sinon on laisse son contenu.
SI possible avec une petite variante, si 'RLR'!A:A = date du jour alors écrire "RECEPTIONNEE"

Range("A2").Formula = "=IFERROR(INDEX('RLR'!A:A,MATCH(B2,'RLR'!C:C,0)),"""")"
Range("A2:A" & Derlg).FillDown

Merci
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Je soupçonne que vous vois soyez mal exprimé.
ISEMPTY(RC1) teste si la cellule A de la ligne courante est seulement complètement vide, comme vous l'aviez demandé.
RC1="""" testera si cette cellule est soit vide soit remplie d'un texte vide ou d'une formule valant un texte vide.
 

Moreno076

XLDnaute Impliqué
Je soupçonne que vous vois soyez mal exprimé.
ISEMPTY(RC1) teste si la cellule A de la ligne courante est seulement complètement vide, comme vous l'aviez demandé.
RC1="""" testera si cette cellule est soit vide soit remplie d'un texte vide ou d'une formule valant un texte vide.

1583282734634.png


Par exemple dans A2 il y a une formule mais pour moi case vide car pas de texte ni date.
Dans A2 Ce devrait être A VERIFIER car rupture hier si c etait la date d aujourd hui A COMMANDER seulement si A est vide et K egalement

si dans la colonne A, la case est vide alors :

Si colonne H = date du jour et colonne K vide alors "A COMMANDER"
Si colonne H= date du jour et colonne K rempli alors "SAISI CE JOUR"
Si colonne H < date du jour et colonne K vide alors "A VERIFIER"
Si colonne G = "non géré' et colonne K vide alors "A COMMANDER"


Si la colonne A est la date du jour alors marqué "Réceptionner ce jour".


Pas évident désolé
 

Dranreb

XLDnaute Barbatruc
Le résultat me semble parfaitement normal.
Il n'y a aucune cellule vide dans la colonne A, donc aucun des 4 ColLignesOùCondR1C1 ne joue. Par contre la 1 ère cellule vaut "" alors elle y met la formule
pour moi case vide car pas de texte ni date
Oui mais comme vous vous interprétez ça on s'en fout, il ne faut pas confondre une cellule vide avec une cellule valant un texte vide, c'est tout ! Alors ne dites pas cellule vide si vous parlez d'une cellule qui paraît seulement vide.
Remplacez les ISEMPTY(RC1) par RC1="""" et repassez devant la dernière instruction, si sa valeur de texte vide peut provenir de la formule.
 

Dranreb

XLDnaute Barbatruc
Essayez comme ça , je ne sais pas ce que vous voulez faire moi !
VB:
Sub Test()
   On Error Resume Next
   ColLignesOùRelat(CelDéb:=[A2], ColQuoi:="A", OPé:="=", Valeur:="").Formula _
      = "=IFERROR(INDEX('ReceptionReappro'!A:A,MATCH(B2,'ReceptionReappro'!C:C,0)),"""")"
   ColLignesOùCondR1C1(CelDéb:=[A2], CondR1C1:="AND(RC1="""",RC8=" & CDbl(Date) & ",RC11="""")").Value = "À COMMANDER"
   ColLignesOùCondR1C1(CelDéb:=[A2], CondR1C1:="AND(RC1="""",RC8=" & CDbl(Date) & ",RC11<>"""")").Value = "SAISI CE JOUR"
   ColLignesOùCondR1C1(CelDéb:=[A2], CondR1C1:="AND(RC1="""",RC8<" & CDbl(Date) & ",RC11="""")").Value = "À VÉRIFIER"
   ColLignesOùCondR1C1(CelDéb:=[A2], CondR1C1:="AND(RC1="""",RC7=""non géré"",RC11="""")").Value = "À COMMANDER"
   End Sub
 
Dernière édition:

Moreno076

XLDnaute Impliqué
Oui je suppose qu'on peut faire comme ça :
VB:
Sub Test()
   On Error Resume Next
   ColLignesOùCondR1C1(CelDéb:=[A2], CondR1C1:="AND(ISEMPTY(RC1),RC8=" & CDbl(Date) & ",ISEMPTY(RC11))").Value = "À COMMANDER"
   ColLignesOùCondR1C1(CelDéb:=[A2], CondR1C1:="AND(ISEMPTY(RC1),RC8=" & CDbl(Date) & ",NOT(ISEMPTY(RC11)))").Value = "SAISI CE JOUR"
   ColLignesOùCondR1C1(CelDéb:=[A2], CondR1C1:="AND(ISEMPTY(RC1),RC8<" & CDbl(Date) & ",ISEMPTY(RC11))").Value = "À VÉRIFIER"
   ColLignesOùCondR1C1(CelDéb:=[A2], CondR1C1:="AND(ISEMPTY(RC1),RC8<" & CDbl(Date) & ",ISEMPTY(RC11))").Value = "À VÉRIFIER"
   ColLignesOùCondR1C1(CelDéb:=[A2], CondR1C1:="AND(ISEMPTY(RC1),RC7=""non géré"",ISEMPTY(RC11))").Value = "À COMMANDER"
   ColLignesOùRelat(CelDéb:=[A2], ColQuoi:="A", OPé:="=", Valeur:="").Formula _
      = "=IFERROR(INDEX('ReceptionReappro'!A:A,MATCH(B2,'ReceptionReappro'!C:C,0)),"""")"
   End Sub
Vous remarquerez que j'ai mes à la fin celle qui met la formule parce que sans cela les autre n'auraient pas l'occasion d'opérer. En effet si la cellule est vide, elle est aussi égale à un texte vide, ce qui n'est pas la même chose.
Or dans vos doléances supplémentaires vous demandez à traiter les cellules vides, pas celles valant un texte vide.

Remarque: si c'était pour moi je repenserais tout ça différemment.
J'ai pris le temps de faire des exemples. dés lors que la colonne A est sans date ni texte il y a une formule. que j'ai affiché en A2 Ensuite pour les cases jaunes ce sont les 5 cas différents.

En espérant que je suis + clair cette fois .

Merci de votre patience.

1583285973078.png
 

Pièces jointes

  • GR7exemple.xlsm
    140.4 KB · Affichages: 3

Dranreb

XLDnaute Barbatruc
Bonjour.
Déjà cette feuille s'appelle "Synthèse".
Avec un tel nom je penserait que c'est une sorte de récapitulatif combiné à partir des autres feuilles et que rien n'était à y saisir.
Les fonctions de service du classeur joint ici permettent d'établir ce genre de rapport.
C'est toute la philosophie du fonctionnement de votre classeur qui devrait être repensée plus simplement. Là j'ai l'impression que ce ne sont que des séries de macro de replâtrages ponctuels.
 

Dranreb

XLDnaute Barbatruc
J'ai un peu parcouru la programmation, et j'en suis arrivé à la conclusion qu'il faudrait tout virer et reprendre à 0 !
Au fond, est-ce que les feuilles autres que la "Synthèse" vous servent à quelque chose ?
Elle semblent toutes venir de classeurs externes, alors ou pourrait les prendre de ces classeurs pour la constituer. Mais gardons les en attendant, il sera toujours temps de les supprimer ultérieurement.
Tout semble venir aussi de leurs fusions et regroupement sur le Code.
 

Moreno076

XLDnaute Impliqué
Bonjour !

Avec le temps oui les fichiers externes ont évolué et changement de logiciel du coup je me suis adapté comme j'ai pu.

Hier j'avais commencé à repartir à 0 mais la recopie des données se trouvait décalé.

C'est sur que de refaire le tableau m'apprendrais pas à pas les choses.

Voulez-vous m'accompagner dans ce projet?
Je donnerais toutes les infos utiles pas à pas?

Merci bien
 

Dranreb

XLDnaute Barbatruc
Oui d'accord.
J'aurais besoin d'une feuille de documentation comportant une colonne pour chaque nom de feuille impliquées, la première étant Synthèse. Elle y reprendrait les titres de la feuille synthèse par une formule matricielle =TRANSPOSE('Synthèse'!$A$1:$N$1)
Ou plus simple: une formule normale : =DECALER('Synthèse'!$A$1;0;LIGNE()-3)
Dans les autres colonnes une formule mise à la main renvoyant vers le titre de la colonne contenant l'information pour chaque feuille où elle y figure (je sais déjà que la "Code" sera dans toutes.) Mettez bien une formule, pas le titre de la colonne, ce qui m'intéresse au bout du compte c'est le numéro de colonne, or on peut le déduire de la formule. Le N° de colonne me suffirait d'ailleurs, mais la formule apporte en plus une vérification visuelle du titre retenu correspondant.
 
Dernière édition:

Moreno076

XLDnaute Impliqué
Voilà c'est prêt.

J'ai mis dans un même classeur les 5 feuilles que j'utilise + la documentation.
Dans chaque feuille j'ai mis en rouge les colonnes utilisées dans synthèse.
En jaune le point commun (code).

Seule la feuille Synthèse doit obtenir les données des autres feuilles.
La liste des lignes dans synthèse doit être seulement celles présentes dans Ruptures et celles qui n'y sont pas sont dans ExtractionReappro.

Voilà pour la première étape.

Merci
 

Pièces jointes

  • GRv0.xlsm
    54.9 KB · Affichages: 4

Dranreb

XLDnaute Barbatruc
J'en suis là pour le moment.
Attention ce n'est encore qu'une simple fusion des lignes se rapportant à chaque Code avec report de toutes valeurs trouvées <> ""
Elle se déclenche à l'activation de la feuille Synthèse pour le moment.

J'y observe un truc: ça se termine par des codes "e" et "f" qui n'existent que dans la feuille Reception. Il y a des désignations "E" et "F" à coté, mais elles ne sont pas reproduites parce que dans la Documentation vous n'avez pas indiqué que de cette feuille il fallait la récupérer …
 

Pièces jointes

  • GigogneMoreno076.xlsm
    103.1 KB · Affichages: 8

Discussions similaires

Réponses
9
Affichages
151

Statistiques des forums

Discussions
312 330
Messages
2 087 351
Membres
103 526
dernier inscrit
HEC