VBA : convertir code enregistrant "formula array" dans cellule
Résolu/Fermé
Arkana0
Messages postés
4399
Date d'inscription
mercredi 11 février 2009
Statut
Modérateur
Dernière intervention
10 février 2023
-
Modifié par Arkana0 le 4/03/2016 à 18:15
Arkana0 Messages postés 4399 Date d'inscription mercredi 11 février 2009 Statut Modérateur Dernière intervention 10 février 2023 - 7 mars 2016 à 09:13
Arkana0 Messages postés 4399 Date d'inscription mercredi 11 février 2009 Statut Modérateur Dernière intervention 10 février 2023 - 7 mars 2016 à 09:13
A voir également:
- VBA : convertir code enregistrant "formula array" dans cellule
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Mkdir vba ✓ - Forum VB / VBA
- Excel compter cellule couleur sans vba - Guide
- Vba range avec variable ✓ - Forum VB / VBA
- Vba dépassement de capacité ✓ - Forum Excel
1 réponse
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
5 mars 2016 à 09:54
5 mars 2016 à 09:54
Bonjour
Beaucoup de choses difficiles à comprendre dans ta demande:
Tu construis un tableau avec les lignes où il y a la valeur de A17 colonne J dans la feuille "export brut..."
alors pourquoi demander l'urgence maximum ?
de plus est ce min ou max ?
pour
ENT(DROITE('Export brut anomalies'!V:V;1));"")))
pourquoi "ENT" puisque tu extrait le dernier caractère de la donnée en colonne V:droite(.......,1)
le code ici est pour le principe et fait à l'aveugle, donc...
Beaucoup de choses difficiles à comprendre dans ta demande:
Tu construis un tableau avec les lignes où il y a la valeur de A17 colonne J dans la feuille "export brut..."
alors pourquoi demander l'urgence maximum ?
de plus est ce min ou max ?
pour
ENT(DROITE('Export brut anomalies'!V:V;1));"")))
pourquoi "ENT" puisque tu extrait le dernier caractère de la donnée en colonne V:droite(.......,1)
le code ici est pour le principe et fait à l'aveugle, donc...
Option Explicit
'{=CONCATENER("U";MIN(SI('Export brut anomalies'!J:J=A17;ENT(DROITE('Export brut anomalies'!V:V;1));"")))}
Sub cccc()
Dim Ref, Nbre As Integer, T_out, Lig As Integer, Cptr As Integer
Application ScreenUpdating = False
Ref = ActiveSheet.Range("A17")
With Sheets("Export brut anomalies")
Nbre = Application.CountIf(.Columns("J"), Ref)
If Ref = 0 Then GoTo vide
ReDim T_out(1 To Nbre)
Lig = Cells.Rows.Count
For Cptr = 1 To Nbre
Lig = .Columns("J").Find(Ref, .Cells(Lig, "J"), xlValues).Row
T_out(Cptr) = "U" & Right(.Cells(Lig, "V"), 1)
Next
End With
With ActiveSheet.ActiveCell
.Offset(0, 1).Resize(Nbre, 1) = Application.Transpose(T_out)
End With
Exit Sub
vide:
MsgBox Ref & "inconnu dans la feuille Export brut anomalies", vbCritical
End Sub
7 mars 2016 à 09:13
En fait je cherchais plus quelque chose qui soit à ma formule ce que le [...].Value = SumIf est au [...].FormulaLocal = "=SOMME.SI. Mais à défaut je vais m'inspirer de ce code.
Pour les explications demandées :
- J'ai pris une ligne en exemple, il y en a plusieurs (nombre indéterminé pour chaque fois) qui fonctionnent sur le même principe.
- Il y a trois niveau d'urgence : U0, U1 et U2, le système est dégressif : la U0 est l'urgence maximum.
- J'ai mis le ENT() car je pioche mon chiffre dans un texte.