XL 2013 Extraire d'une BD des données

carré d’as

XLDnaute Nouveau
bonjour à tous,
j'aurais besoins d'aide sur le fichier en pièce jointe, je suis toujours sur mon projet personnel concernant le suivie de mon troupeau ; nos services d’élevages se sont regrouper informatiquement et depuis avril 2018 et ne sont toujours pas parvenu a coordonnées les 2 sites web / appli smartphone.
D'avance merci.
 

Pièces jointes

  • vatorExcel1.xlsx
    16.9 KB · Affichages: 28

Jocelyn

XLDnaute Barbatruc
Bonjour le Forum,
Bonjour carré d'as,

je pense dans un premier temps que la base devrait être nettoyée de toutes les dates en 1900 je ne l'ai pas fait mais je t'ai tout de même fait des formules en fichier joint

Cordialement

EDIT Bonjour l'ami :), désolé pour la collision mais content de te croiser ;)
 

Pièces jointes

  • vatorExcel1.xlsx
    20.9 KB · Affichages: 17

carré d’as

XLDnaute Nouveau
Tout d'abord MERCI à vous de me consacrer du temps.
Le fichier n'est qu'une partie de ma base de données ou il n'y a pas de date 1900 "qui se balade" ?? : le déplacer la feuille peut être .
Vos réponses sont judicieuse et me conviennent, cependant comment procéder pour que $L$10:L10 soit matricielles et donc dynamique.
bien cordialement.
 

Pièces jointes

  • vatorExcel1.1.xlsx
    21 KB · Affichages: 12

Jocelyn

XLDnaute Barbatruc
Bonjour,

Si si il y a des date en 1900 par exemple Si tu cliques en C4 même si cette cellule parait ne rien contenir on voit 21/01/1900 apparaitre dans la barre de formule, en F7 c'est 27/08/1900 etc ......
Pour nettoyer a par sélectionner les cellule qui parraissent vide et faire supprimer je ne vois qu'une macro et la je suis une bille donc je ne peux pas aider
Concernant la colonne L rien ne sert de mettre une formule matricielle car ce n'est pas une formule de ce type qui rend les chose dynamique.
dans le fichier Je t'ai remplacé les plages du genre A$3:$A$25 (vache) par des plages nommées qui elle sont dynamiques

Pour voir les plages nommée aller dans onglet formule du ruban => gestionnaire de nom

Cordialement

EDIT : Bonjour Efgé :) content de te croiser:)
 

Pièces jointes

  • Copie de vatorExcel1.1.xlsx
    21.8 KB · Affichages: 12
Dernière édition:

Efgé

XLDnaute Barbatruc
Bonjour carré d'As, Salut Victor 21 :) , Salut jocelyn :)

Je me permets de passer par ici, surtout pour saluer tous le monde.
Le fichier exemple étant en en xlsx, carré d'As bénéficie des tableaux de feuilles qui évitent les plages nommées.
J'ai gardé les formules de jocelyn sauf la première pour éviter d'embarquer la "mise en reproduction" en 1900.
J'ai aussi enlevé les mises en formes conditionnelles qui masquent tout ce qui est inférieur à 240 ( donc les dates en 1900 en font beaucoup parties ;) )
Cordialement
 

Pièces jointes

  • Carre_d-As_3.xlsx
    22 KB · Affichages: 14

carré d’as

XLDnaute Nouveau
Bonsoir à tous,
Vos fichiers m'ont permis d'avancé, cependant les formules d'Efgé qui sont parfaites ; m'opposent de la résistance pour entrée dans ma base de données, (feuil base de données : cellules jaunes).
cordialement à Tous
 

Pièces jointes

  • vator2.2.xlsm
    65.2 KB · Affichages: 20

Efgé

XLDnaute Barbatruc
Bonjour à tous

Ce ne sont pas mes formules mais celles de l'ami jocelyn.
Le seul intérêt de ma proposition était d'utiliser un tableau de feuille (Accueil / Mettre sous forme de tableau) pour éviter de créer des plages dynamiques.
Dans le dernier exemple, il n'y a pas de tableau de feuille, pas de plages dynamiques et les plages nommées ne font pas toutes la même
hauteur....:rolleyes:

Je passe la main car je n'aurai certainement pas le temps de repasser avant demain au mieux voir jeudi..

Cordialement
 

job75

XLDnaute Barbatruc
Bonjour carré d'as, Patrick, Jocelyn, Efgé,

Formule matricielle en L10 :
=SIERREUR(INDEX($A:$A;PETITE.VALEUR(SI(ESTNUM(B$3:B$1000/(ANNEE(B$3:B$1000)>1900))*NON(NB.SI(L$9:L9;$A$3:$A$1000));LIGNE($A$3:$A$1000));1));"")

Formule en M10 :
=SIERREUR(RECHERCHEV(L10;$A:B;COLONNES($A:B);0);"")

A tirer vers le bas puis à copier vers la droite en les adaptant puisqu'il y a un pas de 2.

A+
 

Pièces jointes

  • vatorExcel(1).xlsx
    24.5 KB · Affichages: 10

carré d’as

XLDnaute Nouveau
bonjour à tous et bonjour job75,
j'ai intégré ta proposition de formule dans ma base de données, les vaches et surtout les dates trouvées sont en désordre.
- y a t il une possibilité pour que les dates ( colonne M10) soient rangées de la plus petite à la grande en "embarquant" les vaches correspondantes aux dates (colonnes L10)
Cordialement.
 

job75

XLDnaute Barbatruc
Re,

Quand les formules deviennent compliquées le VBA évite de se casser la tête.

Voyez le fichier joint et cette macro dans le code de la feuille :

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim tablo, nlig&, resu(), j%, i&, test As Boolean
tablo = [A1].CurrentRegion.Resize(, 8)
nlig = UBound(tablo)
ReDim resu(1 To nlig, 1 To 14)
For j = 2 To 8
    For i = 2 To nlig
        test = False
        If j <> 7 And IsDate(tablo(i, j)) Then test = Year(tablo(i, j)) > 1900
        If j = 7 And IsNumeric(CStr(tablo(i, j))) Then test = tablo(i, j) > 0
        If test Then
            resu(i, 2 * j - 3) = tablo(i, 1)
            resu(i, 2 * j - 2) = tablo(i, j)
        End If
Next i, j
'---restitution---
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
With [J2] 'à adapter
    .Cells(2, 1).Resize(Rows.Count - .Row, 14).ClearContents 'RAZ
    .Cells(2, 1).Resize(nlig, 14) = resu
    For j = 1 To 13 Step 2
        .Cells(2, j).Resize(nlig, 2).Sort .Cells(2, j + 1), xlAscending, Header:=xlNo 'tri
    Next
End With
Application.EnableEvents = True 'réactive les évènements
End Sub

Elle se déclenche quand on modifie ou valide une cellule quelconque.

Dans le tableau des résultats les dates sont triées comme demandé.

A+
 

Pièces jointes

  • vatorExcel VBA(1).xlsm
    27.8 KB · Affichages: 15

carré d’as

XLDnaute Nouveau
Bonjour à tous et bonjour job75,
"Quand les formules deviennent compliquées le VBA évite de se casser la tête." Proverbe Excel, je suppose ; je suis une bille en VBA. Il faut réecrire le code pour qu'il s'opère dans les colonnes souhaitées ??? je vais me reprendre "la chose" ce soir, mais je part de loin !!.
Cordialement
 

Pièces jointes

  • vator2.4.xlsm
    80.3 KB · Affichages: 10

carré d’as

XLDnaute Nouveau
Bonjour à tous et bonjour job75,
Je reviens vers le forum, en ayant pas résolue mon problème de code vba ; de plus je m’aperçois que le tableau (AC2:AT108) doit être placé sur une feuil 3 "Alerte".
- y a t il une possibilité de revenir au formule EXCEL pour que les dates du tableau (AC2:AT108) soient rangées de la plus petite à la grande en "embarquant" les vaches correspondantes aux dates :
{=SIERREUR(INDEX($Q:$Q;PETITE.VALEUR(SI(ESTNUM(T$6:T$1003/(ANNEE(T$6:T$1003)>1900))*NON(NB.SI(AI$5:AI5;$Q$6:$Q$1003));LIGNE($Q$6:$Q$1003));1));"")}
et
=SIERREUR(RECHERCHEV(L10;$A:B;COLONNES($A:B);0);"")
Cordialement à tous
 

Pièces jointes

  • vator2.4.xlsm
    80.3 KB · Affichages: 9

job75

XLDnaute Barbatruc
Bonjour carré d'as, le forum,

Je ne comprends rien à vos fichiers des posts #12 et #13, ils sont bien trop compliqués.

Si vous ne voulez pas de VBA voyez ce fichier (2).

Les formules des résultats sont bien sûr matricielles et +LIGNE($A$3:$A$1000)/"1E9" permet de distinguer les dates en doublon.

Bonne journée.
 

Pièces jointes

  • vatorExcel(2).xlsx
    25 KB · Affichages: 6

Statistiques des forums

Discussions
311 722
Messages
2 081 930
Membres
101 843
dernier inscrit
Thaly