XL 2019 Calcul automatique des nombres des lignes

bauerjackob

XLDnaute Junior
Bonjour
Je voudrais savoir comment effectuer un calcul automatique dans un autre feuille les nombres des lignes Sans modifier le fichier.
j ai mis un exemple pour quelques lignes. Et dans la feuille A est la base et dans la feuille B le résultat
 

Pièces jointes

  • EXEMPLE.xlsx
    15.4 KB · Affichages: 11
Solution
Oui, mais elle n'a pas à le saisir. Elle n'a rien à faire.
Le "_" est mis en automatique. Donc quel que soit ce que saisie l'opératrice "1234" sera toujours traduit en "_1234", comme les vides remplacés par "-". Avec ces lignes en début de macro :
VB:
    For Each c In Sheets("A").[A1].CurrentRegion
        If c.Value = "" Then c.Value = "-"
        If IsNumeric(Left(c.Value, 1)) Then c.Value = "_" & c.Value
    Next c

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Bauerjackob,
Un essai en PJ avec cette macro qui s'exécute automatiquement lorsqu'on sélectionne la feuille B :
VB:
Sub Worksheet_Activate()
    Dim DL%, DLB%, c
    For Each c In Sheets("A").[A1].CurrentRegion
        If c.Value = "" Then c.Value = "-"
    Next c
    DL = Sheets("A").Range("A65500").End(xlUp).Row
    With Sheets("B")
        .Cells.Clear
        Application.ScreenUpdating = False
        .Range("A1:F" & DL) = Sheets("A").Range("A1:F" & DL).Value
        .Range("E1:E" & DL) = Sheets("A").Range("F1:F" & DL).Value
        .Range("F1:F" & DL).ClearContents
        DLB = .Range("A65500").End(xlUp).Row
        .Range("$A$1:$E$" & DLB).RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5), Header:=xlYes
        .[F1] = "Quantité"
        DLB = .Range("A65500").End(xlUp).Row
        .Range("A1:F" & DLB).Borders.LineStyle = xlThin
        .Columns.AutoFit
        .Range("F2:F" & DLB).FormulaLocal = "=NB.SI.ENS(A!A:A;B!A2;A!B:B;B!B2;A!C:C;B!C2;A!D:D;B!D2;A!F:F;B!E2)"
        .Range("F2:F" & DLB).Value = .Range("F2:F" & DLB).Value
        .Range("F2:F" & DLB).HorizontalAlignment = xlCenter
    End With
End Sub
J'ai quand même touché à la feuille A car la cellule D55 n'avait pas son "-". J'ai donc mis "-" à chaque cellule vide pour bien compter.
 

Pièces jointes

  • EXEMPLE (8).xlsm
    22.4 KB · Affichages: 7
Dernière édition:

bauerjackob

XLDnaute Junior
owerQuery intégré à Excel

Bonjour Bauerjackob,
Un essai en PJ avec cette macro qui s'exécute automatiquement lorsqu'on sélectionne la feuille B :
VB:
Sub Worksheet_Activate()
    Dim DL%, DLB%, c
    For Each c In Sheets("A").[A1].CurrentRegion
        If c.Value = "" Then c.Value = "-"
    Next c
    DL = Sheets("A").Range("A65500").End(xlUp).Row
    With Sheets("B")
        .Cells.Clear
        Application.ScreenUpdating = False
        .Range("A1:F" & DL) = Sheets("A").Range("A1:F" & DL).Value
        .Range("E1:E" & DL) = Sheets("A").Range("F1:F" & DL).Value
        .Range("F1:F" & DL).ClearContents
        DLB = .Range("A65500").End(xlUp).Row
        .Range("$A$1:$E$" & DLB).RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5), Header:=xlYes
        .[F1] = "Quantité"
        DLB = .Range("A65500").End(xlUp).Row
        .Range("A1:F" & DLB).Borders.LineStyle = xlThin
        .Columns.AutoFit
        .Range("F2:F" & DLB).FormulaLocal = "=NB.SI.ENS(A!A:A;B!A2;A!B:B;B!B2;A!C:C;B!C2;A!D:D;B!D2;A!F:F;B!E2)"
        .Range("F2:F" & DLB).Value = .Range("F2:F" & DLB).Value
        .Range("F2:F" & DLB).HorizontalAlignment = xlCenter
    End With
End Sub
J'ai quand même touché à la feuille A car la cellule D55 n'avait pas son "-". J'ai donc mis "-" à chaque cellule vide pour bien compter.
Excuse moi, quand jaimerais ajouter une colonne au tableau A ca va canger le code VBA?
 

bauerjackob

XLDnaute Junior
Bonjour
j ai du mal a finir mon tableau avec. J ai rien touché sur l'exemple , j ajoute seulement les données mais ca donne 0 sur tout les quantité. j ai bien verifié par le filtre qu'il ny a plus des "vides' Si les données que j ai inséré comportent d'espace par exemple " Cartable" au lieu de "Cartable" ca pourrait induire la formule en erreur?
 

bauerjackob

XLDnaute Junior
Sylvanu, jete un oeil sur les 2 fichiers. J ai rien changer sur les codes et les colonnes mais quand j ai mis une données ( Etagere sur emplacement dans vba 2 le resultat est 0
 

Pièces jointes

  • VBA1.xlsm
    22.9 KB · Affichages: 1
  • VBA2.xlsm
    23 KB · Affichages: 1

Discussions similaires

Réponses
2
Affichages
292

Statistiques des forums

Discussions
312 683
Messages
2 090 910
Membres
104 693
dernier inscrit
azizou900