je n'y comprends plus rien, peut être que des yeux neufs sur mon code
m'expliquera ce qui cloche :
j'ai une macro qui fait le total de toutes les lignes d'une feuille
je fais un test : si une seule ligne, alors copie L16 en L17 et M16 en M17
afin d'avoir un total même si une seule ligne de commande
mais voilà que quelque soit le nombre de lignes de ma commande, la macro copie
L16 en L17 et M16 en M17, et ne fait plus le total en bas de commande !
Tout va bien lorsque j'ai UNE seule ligne de commande, mais au delà, c'est
faux
Qu'est ce qui cloche ? j'avoue que j'ai beau chercher je ne comprends pas
voici le code :
Sub TotalFinColonneCommande()
'
Windows("BDCAGENT.xls").Activate
Sheets("Commande").Select
If L17 = "" Then
Range("L16").Select
Selection.Copy
Range("L17").Select
ActiveSheet.Paste
Selection.Font.Bold = True
Range("M16").Select
Selection.Copy
Range("M17").Select
ActiveSheet.Paste
Selection.Font.Bold = True
Else
Dim CelluleL As Range
Set CelluleL = Range("L16").End(xlDown).Offset(1, 0)
With CelluleL
.FormulaR1C1 = "=SUM(R16C12:R" & .Row - 1 & "C12)"
.Font.Bold = True
End With
Dim CelluleM As Range
Set CelluleM = Range("M16").End(xlDown).Offset(1, 0)
With CelluleM
.FormulaR1C1 = "=SUM(R16C13:R" & .Row - 1 & "C13)"
.Font.Bold = True
End With
End If
Range("A1").Select
End Sub
====================
d'avance merci pour votre éclairage
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichDenis
Quand une cellule est vide, comme la cellule a un format standard, excel considère la cellule comme étant une "variable" de type "VARIANT" pouvant contenir du "texte" ou des "chiffres"...
En conséquence, si la cellule est VIDE, Tu dois tester si la cellule ne contient pas du texte ET NE contient PAS un nombre c'est ce pourquoi ce test dans ta macro
If L17 = "" Then est insuffisant.
Si ta cellule est réellement vide, utilises if isempty(Range("L17")) then OR If Not (IsEmpty(Range("a1"))) Then Selon ton besoin...
Je n'ai pas regardé le reste de ta macro !
"Françoise" a écrit dans le message de news:
Bonjour à tous,
je n'y comprends plus rien, peut être que des yeux neufs sur mon code m'expliquera ce qui cloche : j'ai une macro qui fait le total de toutes les lignes d'une feuille je fais un test : si une seule ligne, alors copie L16 en L17 et M16 en M17 afin d'avoir un total même si une seule ligne de commande mais voilà que quelque soit le nombre de lignes de ma commande, la macro copie L16 en L17 et M16 en M17, et ne fait plus le total en bas de commande ! Tout va bien lorsque j'ai UNE seule ligne de commande, mais au delà, c'est faux
Qu'est ce qui cloche ? j'avoue que j'ai beau chercher je ne comprends pas voici le code :
Sub TotalFinColonneCommande() ' Windows("BDCAGENT.xls").Activate Sheets("Commande").Select
If L17 = "" Then Range("L16").Select Selection.Copy Range("L17").Select ActiveSheet.Paste Selection.Font.Bold = True Range("M16").Select Selection.Copy Range("M17").Select ActiveSheet.Paste Selection.Font.Bold = True
Else
Dim CelluleL As Range Set CelluleL = Range("L16").End(xlDown).Offset(1, 0) With CelluleL .FormulaR1C1 = "=SUM(R16C12:R" & .Row - 1 & "C12)" .Font.Bold = True End With
Dim CelluleM As Range Set CelluleM = Range("M16").End(xlDown).Offset(1, 0) With CelluleM .FormulaR1C1 = "=SUM(R16C13:R" & .Row - 1 & "C13)" .Font.Bold = True End With End If Range("A1").Select End Sub =================== d'avance merci pour votre éclairage
Quand une cellule est vide, comme la cellule a un format standard,
excel considère la cellule comme étant une "variable" de type "VARIANT"
pouvant contenir du "texte" ou des "chiffres"...
En conséquence, si la cellule est VIDE,
Tu dois tester si la cellule ne contient pas du texte ET
NE contient PAS un nombre c'est ce pourquoi ce test dans ta macro
If L17 = "" Then est insuffisant.
Si ta cellule est réellement vide, utilises if isempty(Range("L17")) then
OR If Not (IsEmpty(Range("a1"))) Then Selon ton besoin...
Je n'ai pas regardé le reste de ta macro !
"Françoise" <Franoise@discussions.microsoft.com> a écrit dans le message de news:
54B24DB1-ECA7-42B9-8F31-086DB9EFEFDE@microsoft.com...
Bonjour à tous,
je n'y comprends plus rien, peut être que des yeux neufs sur mon code
m'expliquera ce qui cloche :
j'ai une macro qui fait le total de toutes les lignes d'une feuille
je fais un test : si une seule ligne, alors copie L16 en L17 et M16 en M17
afin d'avoir un total même si une seule ligne de commande
mais voilà que quelque soit le nombre de lignes de ma commande, la macro copie
L16 en L17 et M16 en M17, et ne fait plus le total en bas de commande !
Tout va bien lorsque j'ai UNE seule ligne de commande, mais au delà, c'est
faux
Qu'est ce qui cloche ? j'avoue que j'ai beau chercher je ne comprends pas
voici le code :
Sub TotalFinColonneCommande()
'
Windows("BDCAGENT.xls").Activate
Sheets("Commande").Select
If L17 = "" Then
Range("L16").Select
Selection.Copy
Range("L17").Select
ActiveSheet.Paste
Selection.Font.Bold = True
Range("M16").Select
Selection.Copy
Range("M17").Select
ActiveSheet.Paste
Selection.Font.Bold = True
Else
Dim CelluleL As Range
Set CelluleL = Range("L16").End(xlDown).Offset(1, 0)
With CelluleL
.FormulaR1C1 = "=SUM(R16C12:R" & .Row - 1 & "C12)"
.Font.Bold = True
End With
Dim CelluleM As Range
Set CelluleM = Range("M16").End(xlDown).Offset(1, 0)
With CelluleM
.FormulaR1C1 = "=SUM(R16C13:R" & .Row - 1 & "C13)"
.Font.Bold = True
End With
End If
Range("A1").Select
End Sub
=================== d'avance merci pour votre éclairage
Quand une cellule est vide, comme la cellule a un format standard, excel considère la cellule comme étant une "variable" de type "VARIANT" pouvant contenir du "texte" ou des "chiffres"...
En conséquence, si la cellule est VIDE, Tu dois tester si la cellule ne contient pas du texte ET NE contient PAS un nombre c'est ce pourquoi ce test dans ta macro
If L17 = "" Then est insuffisant.
Si ta cellule est réellement vide, utilises if isempty(Range("L17")) then OR If Not (IsEmpty(Range("a1"))) Then Selon ton besoin...
Je n'ai pas regardé le reste de ta macro !
"Françoise" a écrit dans le message de news:
Bonjour à tous,
je n'y comprends plus rien, peut être que des yeux neufs sur mon code m'expliquera ce qui cloche : j'ai une macro qui fait le total de toutes les lignes d'une feuille je fais un test : si une seule ligne, alors copie L16 en L17 et M16 en M17 afin d'avoir un total même si une seule ligne de commande mais voilà que quelque soit le nombre de lignes de ma commande, la macro copie L16 en L17 et M16 en M17, et ne fait plus le total en bas de commande ! Tout va bien lorsque j'ai UNE seule ligne de commande, mais au delà, c'est faux
Qu'est ce qui cloche ? j'avoue que j'ai beau chercher je ne comprends pas voici le code :
Sub TotalFinColonneCommande() ' Windows("BDCAGENT.xls").Activate Sheets("Commande").Select
If L17 = "" Then Range("L16").Select Selection.Copy Range("L17").Select ActiveSheet.Paste Selection.Font.Bold = True Range("M16").Select Selection.Copy Range("M17").Select ActiveSheet.Paste Selection.Font.Bold = True
Else
Dim CelluleL As Range Set CelluleL = Range("L16").End(xlDown).Offset(1, 0) With CelluleL .FormulaR1C1 = "=SUM(R16C12:R" & .Row - 1 & "C12)" .Font.Bold = True End With
Dim CelluleM As Range Set CelluleM = Range("M16").End(xlDown).Offset(1, 0) With CelluleM .FormulaR1C1 = "=SUM(R16C13:R" & .Row - 1 & "C13)" .Font.Bold = True End With End If Range("A1").Select End Sub =================== d'avance merci pour votre éclairage
Françoise
Merci MichDenis !
Effectivement en utilisant if isempty(Range("L17")) then là il y a bien contrôle et mise en oeuvre des calculs de somme correcte Merci encore pour ton aide et SURTOUT la façon dont tu expliques le code, cela permet de comprendre efficacement comment coder dans ces cas cordialement
Quand une cellule est vide, comme la cellule a un format standard, excel considère la cellule comme étant une "variable" de type "VARIANT" pouvant contenir du "texte" ou des "chiffres"...
En conséquence, si la cellule est VIDE, Tu dois tester si la cellule ne contient pas du texte ET NE contient PAS un nombre c'est ce pourquoi ce test dans ta macro
If L17 = "" Then est insuffisant.
Si ta cellule est réellement vide, utilises if isempty(Range("L17")) then OR If Not (IsEmpty(Range("a1"))) Then Selon ton besoin...
Je n'ai pas regardé le reste de ta macro !
"Françoise" a écrit dans le message de news:
Bonjour à tous,
je n'y comprends plus rien, peut être que des yeux neufs sur mon code m'expliquera ce qui cloche : j'ai une macro qui fait le total de toutes les lignes d'une feuille je fais un test : si une seule ligne, alors copie L16 en L17 et M16 en M17 afin d'avoir un total même si une seule ligne de commande mais voilà que quelque soit le nombre de lignes de ma commande, la macro copie L16 en L17 et M16 en M17, et ne fait plus le total en bas de commande ! Tout va bien lorsque j'ai UNE seule ligne de commande, mais au delà, c'est faux
Qu'est ce qui cloche ? j'avoue que j'ai beau chercher je ne comprends pas voici le code :
Sub TotalFinColonneCommande() ' Windows("BDCAGENT.xls").Activate Sheets("Commande").Select
If L17 = "" Then Range("L16").Select Selection.Copy Range("L17").Select ActiveSheet.Paste Selection.Font.Bold = True Range("M16").Select Selection.Copy Range("M17").Select ActiveSheet.Paste Selection.Font.Bold = True
Else
Dim CelluleL As Range Set CelluleL = Range("L16").End(xlDown).Offset(1, 0) With CelluleL .FormulaR1C1 = "=SUM(R16C12:R" & .Row - 1 & "C12)" .Font.Bold = True End With
Dim CelluleM As Range Set CelluleM = Range("M16").End(xlDown).Offset(1, 0) With CelluleM .FormulaR1C1 = "=SUM(R16C13:R" & .Row - 1 & "C13)" .Font.Bold = True End With End If Range("A1").Select End Sub =================== > d'avance merci pour votre éclairage
Merci MichDenis !
Effectivement en utilisant if isempty(Range("L17")) then
là il y a bien contrôle et mise en oeuvre des calculs de somme correcte
Merci encore pour ton aide et SURTOUT la façon dont tu expliques le code,
cela permet de comprendre efficacement comment coder dans ces cas
cordialement
Quand une cellule est vide, comme la cellule a un format standard,
excel considère la cellule comme étant une "variable" de type "VARIANT"
pouvant contenir du "texte" ou des "chiffres"...
En conséquence, si la cellule est VIDE,
Tu dois tester si la cellule ne contient pas du texte ET
NE contient PAS un nombre c'est ce pourquoi ce test dans ta macro
If L17 = "" Then est insuffisant.
Si ta cellule est réellement vide, utilises if isempty(Range("L17")) then
OR If Not (IsEmpty(Range("a1"))) Then Selon ton besoin...
Je n'ai pas regardé le reste de ta macro !
"Françoise" <Franoise@discussions.microsoft.com> a écrit dans le message de news:
54B24DB1-ECA7-42B9-8F31-086DB9EFEFDE@microsoft.com...
Bonjour à tous,
je n'y comprends plus rien, peut être que des yeux neufs sur mon code
m'expliquera ce qui cloche :
j'ai une macro qui fait le total de toutes les lignes d'une feuille
je fais un test : si une seule ligne, alors copie L16 en L17 et M16 en M17
afin d'avoir un total même si une seule ligne de commande
mais voilà que quelque soit le nombre de lignes de ma commande, la macro copie
L16 en L17 et M16 en M17, et ne fait plus le total en bas de commande !
Tout va bien lorsque j'ai UNE seule ligne de commande, mais au delà, c'est
faux
Qu'est ce qui cloche ? j'avoue que j'ai beau chercher je ne comprends pas
voici le code :
Sub TotalFinColonneCommande()
'
Windows("BDCAGENT.xls").Activate
Sheets("Commande").Select
If L17 = "" Then
Range("L16").Select
Selection.Copy
Range("L17").Select
ActiveSheet.Paste
Selection.Font.Bold = True
Range("M16").Select
Selection.Copy
Range("M17").Select
ActiveSheet.Paste
Selection.Font.Bold = True
Else
Dim CelluleL As Range
Set CelluleL = Range("L16").End(xlDown).Offset(1, 0)
With CelluleL
.FormulaR1C1 = "=SUM(R16C12:R" & .Row - 1 & "C12)"
.Font.Bold = True
End With
Dim CelluleM As Range
Set CelluleM = Range("M16").End(xlDown).Offset(1, 0)
With CelluleM
.FormulaR1C1 = "=SUM(R16C13:R" & .Row - 1 & "C13)"
.Font.Bold = True
End With
End If
Range("A1").Select
End Sub
=================== > d'avance merci pour votre éclairage
Effectivement en utilisant if isempty(Range("L17")) then là il y a bien contrôle et mise en oeuvre des calculs de somme correcte Merci encore pour ton aide et SURTOUT la façon dont tu expliques le code, cela permet de comprendre efficacement comment coder dans ces cas cordialement
Quand une cellule est vide, comme la cellule a un format standard, excel considère la cellule comme étant une "variable" de type "VARIANT" pouvant contenir du "texte" ou des "chiffres"...
En conséquence, si la cellule est VIDE, Tu dois tester si la cellule ne contient pas du texte ET NE contient PAS un nombre c'est ce pourquoi ce test dans ta macro
If L17 = "" Then est insuffisant.
Si ta cellule est réellement vide, utilises if isempty(Range("L17")) then OR If Not (IsEmpty(Range("a1"))) Then Selon ton besoin...
Je n'ai pas regardé le reste de ta macro !
"Françoise" a écrit dans le message de news:
Bonjour à tous,
je n'y comprends plus rien, peut être que des yeux neufs sur mon code m'expliquera ce qui cloche : j'ai une macro qui fait le total de toutes les lignes d'une feuille je fais un test : si une seule ligne, alors copie L16 en L17 et M16 en M17 afin d'avoir un total même si une seule ligne de commande mais voilà que quelque soit le nombre de lignes de ma commande, la macro copie L16 en L17 et M16 en M17, et ne fait plus le total en bas de commande ! Tout va bien lorsque j'ai UNE seule ligne de commande, mais au delà, c'est faux
Qu'est ce qui cloche ? j'avoue que j'ai beau chercher je ne comprends pas voici le code :
Sub TotalFinColonneCommande() ' Windows("BDCAGENT.xls").Activate Sheets("Commande").Select
If L17 = "" Then Range("L16").Select Selection.Copy Range("L17").Select ActiveSheet.Paste Selection.Font.Bold = True Range("M16").Select Selection.Copy Range("M17").Select ActiveSheet.Paste Selection.Font.Bold = True
Else
Dim CelluleL As Range Set CelluleL = Range("L16").End(xlDown).Offset(1, 0) With CelluleL .FormulaR1C1 = "=SUM(R16C12:R" & .Row - 1 & "C12)" .Font.Bold = True End With
Dim CelluleM As Range Set CelluleM = Range("M16").End(xlDown).Offset(1, 0) With CelluleM .FormulaR1C1 = "=SUM(R16C13:R" & .Row - 1 & "C13)" .Font.Bold = True End With End If Range("A1").Select End Sub =================== > d'avance merci pour votre éclairage