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
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
De temps pour quoi ? pour calculer ou pour apprendre ?Avec TDC aussi ca va mais necessiste bcp de temps
owerQuery intégré à Excel
Excuse moi, quand jaimerais ajouter une colonne au tableau A ca va canger le code VBA?Bonjour Bauerjackob,
Un essai en PJ avec cette macro qui s'exécute automatiquement lorsqu'on sélectionne la feuille B :
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.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
Desole je ne maitrise pas tres bien le PQBonjour à tous
De temps pour quoi ? pour calculer ou pour apprendre ?
Une solution en quelques clics via PowerQuery intégré à Excel, actualisable à volonté
Si on ajoute 3 colonnes au feuille A que ferait jeExcuse moi, quand jaimerais ajouter une colonne au tableau A ca va canger le code VBA?
Si encore devant le texte dans un cellule il y a un "espace" excel considere quoi?Si on ajoute 3 colonnes au feuille A que ferait je
Manifestement le VBA non plus donc match nul...Desole je ne maitrise pas tres bien le PQ
Si on ajoute des colonnes, évidemment ça change le code.Si on ajoute 3 colonnes au feuille A que ferait je
MERCIBonsoir tout le monde,
Si on ajoute des colonnes, évidemment ça change le code.
En PJ avec 3 colonnes supplémentaires.
A noter qu'il faut reprendre la formule en fonction du besoin.
Donc dans le VBA mettre la formule :A noter qu'il faut reprendre la formule en fonction du besoin.
.Range("J2:J" & 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!I:I;B!I2)"