1. Ce site utilise des "témoins de connexion" (cookies) conformes aux textes de l'Union Européenne. Continuer à naviguer sur nos pages vaut acceptation de notre règlement en la matière. En savoir plus.

XL 2013 Recherche Colonne contenant Erreur(#N/A; #Valeur etc)

Discussion dans 'Forum Excel' démarrée par momo, 8 Février 2019.

  1. momo

    momo XLDnaute Occasionnel

    Inscrit depuis le :
    31 Décembre 2014
    Messages :
    333
    "J'aime" reçus :
    0
    Bonjour à tous,

    Je voudrais obtenir un tableau récapitulatif qui se présente sous ce format (voir fichier joint)

    Pour cela, je voudrais un petit programme qui me permettrait dès que je clique sur un bouton, qu'il aille rechercher dans les trois bases (Source A , B et C), toutes les données dont la colonne Infos renvoie une erreur de type #N/A; #Valeur etc..

    Merci en avance pour le coup de main
     

    Pièces jointes:

  2. Chargement...

    Discussions similaires - Recherche Colonne contenant Forum Date
    Ajout d'une colonne à un TCD contenant une formule de recherche Forum Excel 24 Février 2014
    Recherche colonne d'une cellule contenant un mot-clé Forum Excel 17 Janvier 2008
    XL 2013 Formule pour afficher colonne suivante de la ligne (RECHERCHEV) Forum Excel 14 Février 2019
    Récupérer la ligne et la colonne avec RECHERCHEV Forum Excel 10 Février 2019
    Recherche avec 2 critères dans 2 colonnes Forum Excel 22 Janvier 2019

  3. M12

    M12 XLDnaute Impliqué

    Inscrit depuis le :
    9 Février 2016
    Messages :
    768
    "J'aime" reçus :
    102
    Sexe :
    Masculin
    Utilise:
    Excel 2013 (PC)
    Bonjour

    A tester
     

    Pièces jointes:

    momo aime votre message.
  4. momo

    momo XLDnaute Occasionnel

    Inscrit depuis le :
    31 Décembre 2014
    Messages :
    333
    "J'aime" reçus :
    0
    C’est excellent
    Merci beaucoup
     
  5. job75

    job75 XLDnaute Barbatruc

    Inscrit depuis le :
    15 Mai 2008
    Messages :
    26301
    "J'aime" reçus :
    2311
    Sexe :
    Masculin
    Habite à:
    Paris
    Utilise:
    Excel 2013 (PC)
    Bonjour momo, M12, le forum,

    Cette macro est très rapide car elle utilise des tableaux VBA :
    Code (Text):
    Private Sub Worksheet_Activate()
    Dim resu(), w As Worksheet, trouve As Boolean, tablo, i&, col%, n&
    ReDim resu(1 To Rows.Count, 1 To 1 + Worksheets.Count)
    '---remplissage du tableau des résultats---
    resu(1, 1) = "N°": resu(1, 2) = "Intitulé": n = 1
    For Each w In Worksheets
        If w.Name <> Me.Name Then
            trouve = False
            tablo = w.UsedRange.Resize(, 4) 'matrice, plus rapide
            For i = 1 To UBound(tablo)
                If IsError(tablo(i, 1)) Then
                    If Not trouve Then trouve = True: col = col + 1: resu(1, col + 2) = w.Name
                    n = n + 1
                    resu(n, 1) = tablo(i, 2)
                    resu(n, 2) = tablo(i, 3)
                    resu(n, col + 2) = tablo(i, 4)
                End If
            Next
        End If
    Next
    '---restitution---
    Application.ScreenUpdating = False
    Cells.Delete 'RAZ
    With [A3].Resize(n, col + 2) 'cellule à adapter
        .Value = resu
        .Borders.Weight = xlThin 'bordures
        .Rows(1).Interior.ColorIndex = 5 'bleu
        .Rows(1).Font.ColorIndex = 2 'blanc
        .Rows(1).Font.Bold = True 'gras
        .Columns.AutoFit 'ajustement largeurs
    End With
    End Sub
    Elle se déclenche quand on active la feuille "Synthèse".

    A+
     

    Pièces jointes:

    momo aime votre message.
  6. momo

    momo XLDnaute Occasionnel

    Inscrit depuis le :
    31 Décembre 2014
    Messages :
    333
    "J'aime" reçus :
    0
     
  7. momo

    momo XLDnaute Occasionnel

    Inscrit depuis le :
    31 Décembre 2014
    Messages :
    333
    "J'aime" reçus :
    0
    Vous avez une petite idée de comment faire pour que les chiffres s'affichent avec le séparateur de milliers?

    Est ce que c'est possible que , a numéro identique (Numero en colonne A sur la feuille synthèse), les valeurs de chaque feuille source s'affiche sur la même ligne?
     
  8. momo

    momo XLDnaute Occasionnel

    Inscrit depuis le :
    31 Décembre 2014
    Messages :
    333
    "J'aime" reçus :
    0
    J'ai pu le faire tout seul
     
  9. job75

    job75 XLDnaute Barbatruc

    Inscrit depuis le :
    15 Mai 2008
    Messages :
    26301
    "J'aime" reçus :
    2311
    Sexe :
    Masculin
    Habite à:
    Paris
    Utilise:
    Excel 2013 (PC)
    Dans ce fichier (2) j'ai ajouté la ligne :
    Code (Text):
        If col Then .Columns(3).Resize(, col).NumberFormat = "#,##0.00"
    Il faudrait joindre un fichier montrant le résultat souhaité.
     

    Pièces jointes:

  10. momo

    momo XLDnaute Occasionnel

    Inscrit depuis le :
    31 Décembre 2014
    Messages :
    333
    "J'aime" reçus :
    0
    Encore mieux... merci bcp .. Mais la PJ n'est pas disponible
     
    Dernière édition: 9 Février 2019
  11. momo

    momo XLDnaute Occasionnel

    Inscrit depuis le :
    31 Décembre 2014
    Messages :
    333
    "J'aime" reçus :
    0
    Voici le fichier
     

    Pièces jointes:

  12. job75

    job75 XLDnaute Barbatruc

    Inscrit depuis le :
    15 Mai 2008
    Messages :
    26301
    "J'aime" reçus :
    2311
    Sexe :
    Masculin
    Habite à:
    Paris
    Utilise:
    Excel 2013 (PC)
    Dans ce fichier (3) on utilise le Dictionary :
    Code (Text):
    Private Sub Worksheet_Activate()
    Dim resu(), d As Object, w As Worksheet, trouve As Boolean, tablo, i&, col%, x$, n&
    ReDim resu(1 To Rows.Count, 1 To 1 + Worksheets.Count)
    '---remplissage du tableau des résultats---
    resu(1, 1) = "N°": resu(1, 2) = "Intitulé": n = 1
    Set d = CreateObject("Scripting.Dictionary")
    d.CompareMode = vbTextCompare 'la casse est ignorée
    For Each w In Worksheets
        If w.Name <> Me.Name Then
            trouve = False
            tablo = w.UsedRange.Columns(1).Resize(, 4) 'matrice, plus rapide
            For i = 1 To UBound(tablo)
                If IsError(tablo(i, 1)) Then
                    If Not trouve Then trouve = True: col = col + 1: resu(1, col + 2) = w.Name
                    x = tablo(i, 2) & tablo(i, 3)
                    If Not d.exists(x) Then
                        n = n + 1
                        d(x) = n 'mémorise le numéro de ligne
                        resu(n, 1) = tablo(i, 2)
                        resu(n, 2) = tablo(i, 3)
                    End If
                    If IsNumeric(tablo(i, 4)) Then resu(d(x), col + 2) = resu(d(x), col + 2) + CDbl(tablo(i, 4)) 'somme
                End If
            Next
        End If
    Next
    '---restitution---
    Application.ScreenUpdating = False
    Cells.Delete 'RAZ
    With [A3].Resize(n, col + 2) 'cellule à adapter
        .Value = resu
        If col Then .Columns(3).Resize(, col).NumberFormat = "#,##0.00"
        .Borders.Weight = xlThin 'bordures
        .Rows(1).Interior.ColorIndex = 5 'bleu
        .Rows(1).Font.ColorIndex = 2 'blanc
        .Rows(1).Font.Bold = True 'gras
        .Columns.AutoFit 'ajustement largeurs
    End With
    End Sub
     

    Pièces jointes:

    Dernière édition: 9 Février 2019
    momo aime votre message.
  13. momo

    momo XLDnaute Occasionnel

    Inscrit depuis le :
    31 Décembre 2014
    Messages :
    333
    "J'aime" reçus :
    0
    Vous êtes trop fort!!!
    Merci c'est impecc
     
  14. job75

    job75 XLDnaute Barbatruc

    Inscrit depuis le :
    15 Mai 2008
    Messages :
    26301
    "J'aime" reçus :
    2311
    Sexe :
    Masculin
    Habite à:
    Paris
    Utilise:
    Excel 2013 (PC)
    Je viens de modifier la macro précédente pour faire la somme des montants dont N° Intitulé et feuille sont identiques.

    Pour tester j'ai copié les 3 tableaux sources sur 10 000 lignes, la macro s'exécute chez moi en 0,28 seconde.
     
    momo aime votre message.
  15. momo

    momo XLDnaute Occasionnel

    Inscrit depuis le :
    31 Décembre 2014
    Messages :
    333
    "J'aime" reçus :
    0
    Waooooo c'est awesome! en 0,28 Secondes , ca va vachement m'aider ca!

    Merci encore et encore
     

Partager cette page