Microsoft 365 Formule de recherche

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 !

homernell

XLDnaute Occasionnel
Bonjour à tous,

Déjà merci à tous de me lire.

Je vous explique j'ai un tableau dans lequel j'ai un onglet "données" qui sont les données brut extraite d'un programme, et un onglet "récap" qui retraite l'information.

J'ai fait une formule en recherche (déjà je me suis bien débrouillé vu mon niveau 🥳🥳🥳), néanmoins je ne sais pas comment faire pour qu'il me remonte une somme en fonction d'un condition, je me demande d'ailleurs si je suis clair !!!

Exemple : dans l'onglet données on a plusieurs lignes pour le film Venom, et j'aimerai avoir une récap en fonction des formats et versions de films.

Je vous mets en copie mon fichier peut être plus simple pour vous expert de voir concrètement.

Merci d'avance.
 

Pièces jointes

Bonsoir homernell,
On peut utiliser somme.si.ens comme en PJ :
VB:
=SOMME.SI.ENS(données!I:I;données!C:C;récap!B3;données!E:E;récap!C3;données!F:F;récap!D3)
Attention, dans votre fichier les données "ca" ne sont pas des nombres mais des chaines de caractères. J'ai été obligé dans chaque cellule de sélectionner et faire un return. de plus il y a un espace texte entre milliers et unités.
 

Pièces jointes

Bonsoir homernell,
On peut utiliser somme.si.ens comme en PJ :
VB:
=SOMME.SI.ENS(données!I:I;données!C:C;récap!B3;données!E:E;récap!C3;données!F:F;récap!D3)
Attention, dans votre fichier les données "ca" ne sont pas des nombres mais des chaines de caractères. J'ai été obligé dans chaque cellule de sélectionner et faire un return. de plus il y a un espace texte entre milliers et unités.
Tout d'abord merci mille fois pour la réponse rapide ainsi que la solution par contre je n'ai pas tout compris sur les données CA.
Faut-il que je ressaisisse toutes les données à chaque fois ? si oui ce serait une perte de temps j'imagine..
 
Bonjour,
Le mieux serait que l'import se fasse avec des nombres et non du texte.
Ce qui n'est pas toujours faisable.
Une autre solution est un module VBA qui transforme ce texte en nombre avec :
VB:
Sub Worksheet_Activate()
    Application.ScreenUpdating = False
    With Sheets("données")
        For L = 2 To .Range("L65500").End(xlUp).Row
            .Cells(L, "L") = .Cells(L, "L") * 1
        Next L
    End With
    Application.ScreenUpdating = True
End Sub
Ce code s'exécute automatiquement lorsqu'on sélectionne la feuille "recap"
Evidemment il faut accepter les macro à l'ouverture du fichier.
 

Pièces jointes

Bonjour,
Le mieux serait que l'import se fasse avec des nombres et non du texte.
Ce qui n'est pas toujours faisable.
Une autre solution est un module VBA qui transforme ce texte en nombre avec :
VB:
Sub Worksheet_Activate()
    Application.ScreenUpdating = False
    With Sheets("données")
        For L = 2 To .Range("L65500").End(xlUp).Row
            .Cells(L, "L") = .Cells(L, "L") * 1
        Next L
    End With
    Application.ScreenUpdating = True
End Sub
Ce code s'exécute automatiquement lorsqu'on sélectionne la feuille "recap"
Evidemment il faut accepter les macro à l'ouverture du fichier.
Bonjour franchement c'est top du top, tu solutionnes mes problèmes.

Mais si je peux utiliser encore tes services, je viens de faire un test avec un nouvel import, et bizarre j'ai une cellule qui me fait planter, je pense qu'il s'agit encore de format :

1635321342502.png


Si tu peux m'aider ? s'il te plait
 

Pièces jointes

J'ai remplacé :
VB:
For L = 2 To .Range("L65500").End(xlUp).Row
par
Code:
For L = 1 To .Range("L65500").End(xlUp).Row
Le problème est que si en ligne 1 il a du texte, la conversion crée une erreur donc j'évite l'erreur avec un On error resume next qui saute la ligne suivante si erronée, on a donc :
Code:
Sub Worksheet_Activate()
    Application.ScreenUpdating = False
    With Sheets("données")
        For L = 1 To .Range("L65500").End(xlUp).Row
            On Error Resume Next    ' les données commencent en ligne 2 ou 1, évite erreur si en 1 il y a du texte.
            .Cells(L, "L") = .Cells(L, "L") * 1
        Next L
    End With
    Application.ScreenUpdating = True
End Sub

NB: La macro se lance automatiquement quand on sélectionne la feuille Récap, inutile de la relancer via le bouton.
 
Dernière édition:
Bonjour franchement c'est top du top, tu solutionnes mes problèmes.

Mais si je peux utiliser encore tes services, je viens de faire un test avec un nouvel import, et bizarre j'ai une cellule qui me fait planter, je pense qu'il s'agit encore de format :

Regarde la pièce jointe 1119528

Si tu peux m'aider ? s'il te plait
Re,

Bonjour à toi, et encore merci,

Nouveau problème ils m'ont changé la mise en page du coup ta macro ne fonctionne plus, peux tu m'aider à nouveau ?
 

Pièces jointes

Bonjour,
Il suffit de remplacer la colonne L par la colonne V.
J'ai remis à jour les formules et modifié la macro :
VB:
Sub Worksheet_Activate()
    Application.ScreenUpdating = False
    With Sheets("données")
        For L = 2 To .Range("V65500").End(xlUp).Row
            If .Cells(L, "V") <> "" Then
                .Cells(L, "V") = Val(Replace(.Cells(L, "V"), " ", "")) * 1
            End If
        Next L
    End With
    Application.ScreenUpdating = True
End Sub
 

Pièces jointes

Bonjour,
Il suffit de remplacer la colonne L par la colonne V.
J'ai remis à jour les formules et modifié la macro :
VB:
Sub Worksheet_Activate()
    Application.ScreenUpdating = False
    With Sheets("données")
        For L = 2 To .Range("V65500").End(xlUp).Row
            If .Cells(L, "V") <> "" Then
                .Cells(L, "V") = Val(Replace(.Cells(L, "V"), " ", "")) * 1
            End If
        Next L
    End With
    Application.ScreenUpdating = True
End Sub

Merci mais le fichier ne fonctionne pas j'ai l'impression.
Et surtout j'avais plus ou moins compris la logique de remplacement de L par V mais quand je regarde votre macro je vois encore des L (et des V).
1635948769361.png
 
- 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
4
Affichages
112
Réponses
6
Affichages
186
Réponses
1
Affichages
116
Réponses
5
Affichages
286
Retour