Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

sélectionner la denière ligne d'un tableau de dimension variable

10 réponses
Avatar
C15
Bonjour à tous et toutes,

J'ai un tableau croisé dynamique qui s'appelle TCD.
Je voudrai récupérer la dernière ligne (celle où apparaissent les totaux)
pour l'afficher en ligne 3 de ma feuille de calcul afin de voir tout de
suite cette ligne récapitulative.

J'avais trouvé cette procédure pour récupérer la dernière cellule de ce
tableau (où apparaît le total général) :

Dim Lignes As Integer
Dim Colonnes As Integer
Lignes = Range("TCD").Rows.Count - 1
Colonnes = Range("TCD").Columns.Count - 1
>>>>>>>>> Range("TCD").Cells(1, 1).Offset(Lignes, Colonnes).Select

With Selection
Range("b5").Formula = ActiveCell
End With

Je n'arrive pas à adapter la ligne Range ...pour sélectionner ma denière
ligne.

Merci de votre aide

a+

C15

10 réponses

Avatar
isabelle
bonjour C15,

c'est possible de le faire avec une formule,
=INDIRECT(ADRESSE(EQUIV("Total";A:A;0);2))


définition de la formule :
exemple si le ou les totals se trouvent en colonne A

EQUIV("Total";A:A;0)
retourne la ligne du premier "Total" trouver dans cette colonne
il faudrait additionner ou soustraire une quantité selon le cas pour
arriver à la bonne ligne

ADRESSE(EQUIV("Total";A:A;0);2)
retourne l'adresse de la valeur cherché, dans cette exemple j'ai choisi
la valeur de la colonne B ( chiffre 2 de la formule)

=INDIRECT(ADRESSE(EQUIV("Total";A:A;0);2))
et le résultat final en utilisant la fonction Indirect pour avoir le
contenue de l'adresse trouver

isabelle


Bonjour à tous et toutes,

J'ai un tableau croisé dynamique qui s'appelle TCD.
Je voudrai récupérer la dernière ligne (celle où apparaissent les totaux)
pour l'afficher en ligne 3 de ma feuille de calcul afin de voir tout de
suite cette ligne récapitulative.

J'avais trouvé cette procédure pour récupérer la dernière cellule de ce
tableau (où apparaît le total général) :

Dim Lignes As Integer
Dim Colonnes As Integer
Lignes = Range("TCD").Rows.Count - 1
Colonnes = Range("TCD").Columns.Count - 1
Range("TCD").Cells(1, 1).Offset(Lignes, Colonnes).Select










With Selection
Range("b5").Formula = ActiveCell
End With

Je n'arrive pas à adapter la ligne Range ...pour sélectionner ma denière
ligne.

Merci de votre aide

a+

C15











Avatar
ru-th
Salut
ce qui en Vba donnerait
Sub test2()
ligne = [match("Total",A:A,0)]
col = Range("IV" & ligne).End(xlToLeft).Column
Range("A3:" & Cells(3, col).Address).Value = Range("A" & ligne & ":" &
Cells(ligne, col).Address).Value
End Sub

a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"isabelle" a écrit dans le message de
news:
bonjour C15,

c'est possible de le faire avec une formule,
=INDIRECT(ADRESSE(EQUIV("Total";A:A;0);2))


définition de la formule :
exemple si le ou les totals se trouvent en colonne A

EQUIV("Total";A:A;0)
retourne la ligne du premier "Total" trouver dans cette colonne
il faudrait additionner ou soustraire une quantité selon le cas pour
arriver à la bonne ligne

ADRESSE(EQUIV("Total";A:A;0);2)
retourne l'adresse de la valeur cherché, dans cette exemple j'ai choisi
la valeur de la colonne B ( chiffre 2 de la formule)

=INDIRECT(ADRESSE(EQUIV("Total";A:A;0);2))
et le résultat final en utilisant la fonction Indirect pour avoir le
contenue de l'adresse trouver

isabelle


Bonjour à tous et toutes,

J'ai un tableau croisé dynamique qui s'appelle TCD.
Je voudrai récupérer la dernière ligne (celle où apparaissent les
totaux)


pour l'afficher en ligne 3 de ma feuille de calcul afin de voir tout de
suite cette ligne récapitulative.

J'avais trouvé cette procédure pour récupérer la dernière cellule de ce
tableau (où apparaît le total général) :

Dim Lignes As Integer
Dim Colonnes As Integer
Lignes = Range("TCD").Rows.Count - 1
Colonnes = Range("TCD").Columns.Count - 1
Range("TCD").Cells(1, 1).Offset(Lignes, Colonnes).Select










With Selection
Range("b5").Formula = ActiveCell
End With

Je n'arrive pas à adapter la ligne Range ...pour sélectionner ma denière
ligne.

Merci de votre aide

a+

C15













Avatar
C15
Bonjour et merci à tous les 2.
J'ai essayé vos procédures et j'ai un petit souci avec celle d'Isabelle,
cela marche bien mais ne me recopie le total que d'une seule cellule et non
de toutes mes celleules de totaux.

Celle de ru-th a l'air de bien marcher, mais après avoir rajouté des données
dans mon tableau initial et actualisé mon tcd la procédure n'écrase pas ma
ligne récapitulative existante.
Il me faut effacer cette ligne et réexécuter la procédure pour avoir une
récap prenant en compte les nouvelles données entrées.

A+

C15


"ru-th" a écrit dans le message de
news:
Salut
ce qui en Vba donnerait
Sub test2()
ligne = [match("Total",A:A,0)]
col = Range("IV" & ligne).End(xlToLeft).Column
Range("A3:" & Cells(3, col).Address).Value = Range("A" & ligne & ":" &
Cells(ligne, col).Address).Value
End Sub

a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"isabelle" a écrit dans le message de
news:
bonjour C15,

c'est possible de le faire avec une formule,
=INDIRECT(ADRESSE(EQUIV("Total";A:A;0);2))


définition de la formule :
exemple si le ou les totals se trouvent en colonne A

EQUIV("Total";A:A;0)
retourne la ligne du premier "Total" trouver dans cette colonne
il faudrait additionner ou soustraire une quantité selon le cas pour
arriver à la bonne ligne

ADRESSE(EQUIV("Total";A:A;0);2)
retourne l'adresse de la valeur cherché, dans cette exemple j'ai choisi
la valeur de la colonne B ( chiffre 2 de la formule)

=INDIRECT(ADRESSE(EQUIV("Total";A:A;0);2))
et le résultat final en utilisant la fonction Indirect pour avoir le
contenue de l'adresse trouver

isabelle


Bonjour à tous et toutes,

J'ai un tableau croisé dynamique qui s'appelle TCD.
Je voudrai récupérer la dernière ligne (celle où apparaissent les
totaux)


pour l'afficher en ligne 3 de ma feuille de calcul afin de voir tout
de



suite cette ligne récapitulative.

J'avais trouvé cette procédure pour récupérer la dernière cellule de
ce



tableau (où apparaît le total général) :

Dim Lignes As Integer
Dim Colonnes As Integer
Lignes = Range("TCD").Rows.Count - 1
Colonnes = Range("TCD").Columns.Count - 1
Range("TCD").Cells(1, 1).Offset(Lignes, Colonnes).Select










With Selection
Range("b5").Formula = ActiveCell
End With

Je n'arrive pas à adapter la ligne Range ...pour sélectionner ma
denière



ligne.

Merci de votre aide

a+

C15

















Avatar
Benead
Bonjour C15,

Concernant la formule d'Isabelle :

En A3 , mettre ce que tu veux sauf Total (Rappel, Totaux...)
En B3 : =INDIRECT(ADRESSE(EQUIV("Total";$A:$A;0);COLONNE()))
puis faire une copie incrémentée toutes les colonnes de ton tableau

Pour exemple Isabelle a mis la colonne B et te l'a dit.
En remplacant "2" par Colonne() cela devrait te convenir mais l'oublie pas de remplacer A:A par $A:$A pour que la copie fonctionne.

Concernant la macro de Thierry, mets la dans l'événement Worksheet_Calculate de la feuille :

Private Sub Worksheet_Calculate()
Rows(3).ClearContents
ligne = [match("Total",A:A,0)]
col = Range("IV" & ligne).End(xlToLeft).Column
Range("A3:" & Cells(3, col).Address).Value = Range("A" & ligne & ":" & Cells(ligne, col).Address).Value
End Sub

A+
Benead

C15 a écrit:
Bonjour et merci à tous les 2.
J'ai essayé vos procédures et j'ai un petit souci avec celle d'Isabelle,
cela marche bien mais ne me recopie le total que d'une seule cellule et non
de toutes mes celleules de totaux.

Celle de ru-th a l'air de bien marcher, mais après avoir rajouté des données
dans mon tableau initial et actualisé mon tcd la procédure n'écrase pas ma
ligne récapitulative existante.
Il me faut effacer cette ligne et réexécuter la procédure pour avoir une
récap prenant en compte les nouvelles données entrées.

A+

C15


"ru-th" a écrit dans le message de
news:

Salut
ce qui en Vba donnerait
Sub test2()
ligne = [match("Total",A:A,0)]
col = Range("IV" & ligne).End(xlToLeft).Column
Range("A3:" & Cells(3, col).Address).Value = Range("A" & ligne & ":" &
Cells(ligne, col).Address).Value
End Sub

a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"isabelle" a écrit dans le message de
news:

bonjour C15,

c'est possible de le faire avec une formule,
=INDIRECT(ADRESSE(EQUIV("Total";A:A;0);2))


définition de la formule :
exemple si le ou les totals se trouvent en colonne A

EQUIV("Total";A:A;0)
retourne la ligne du premier "Total" trouver dans cette colonne
il faudrait additionner ou soustraire une quantité selon le cas pour
arriver à la bonne ligne

ADRESSE(EQUIV("Total";A:A;0);2)
retourne l'adresse de la valeur cherché, dans cette exemple j'ai choisi
la valeur de la colonne B ( chiffre 2 de la formule)

=INDIRECT(ADRESSE(EQUIV("Total";A:A;0);2))
et le résultat final en utilisant la fonction Indirect pour avoir le
contenue de l'adresse trouver

isabelle


Bonjour à tous et toutes,

J'ai un tableau croisé dynamique qui s'appelle TCD.
Je voudrai récupérer la dernière ligne (celle où apparaissent les


totaux)


pour l'afficher en ligne 3 de ma feuille de calcul afin de voir tout


de



suite cette ligne récapitulative.

J'avais trouvé cette procédure pour récupérer la dernière cellule de


ce



tableau (où apparaît le total général) :

Dim Lignes As Integer
Dim Colonnes As Integer
Lignes = Range("TCD").Rows.Count - 1
Colonnes = Range("TCD").Columns.Count - 1

Range("TCD").Cells(1, 1).Offset(Lignes, Colonnes).Select


With Selection








Range("b5").Formula = ActiveCell
End With

Je n'arrive pas à adapter la ligne Range ...pour sélectionner ma


denière



ligne.

Merci de votre aide

a+

C15





















Avatar
C15
Merci de ces réponses.
Mais question bête comment exécuter Worksheet_Calculate() ?

A+

C15
"Benead" a écrit dans le message de
news:
Bonjour C15,

Concernant la formule d'Isabelle :

En A3 , mettre ce que tu veux sauf Total (Rappel, Totaux...)
En B3 : =INDIRECT(ADRESSE(EQUIV("Total";$A:$A;0);COLONNE()))
puis faire une copie incrémentée toutes les colonnes de ton tableau

Pour exemple Isabelle a mis la colonne B et te l'a dit.
En remplacant "2" par Colonne() cela devrait te convenir mais l'oublie pas
de remplacer A:A par $A:$A pour que la copie fonctionne.


Concernant la macro de Thierry, mets la dans l'événement
Worksheet_Calculate de la feuille :


Private Sub Worksheet_Calculate()
Rows(3).ClearContents
ligne = [match("Total",A:A,0)]
col = Range("IV" & ligne).End(xlToLeft).Column
Range("A3:" & Cells(3, col).Address).Value = Range("A" & ligne & ":" &
Cells(ligne, col).Address).Value

End Sub

A+
Benead

C15 a écrit:
Bonjour et merci à tous les 2.
J'ai essayé vos procédures et j'ai un petit souci avec celle d'Isabelle,
cela marche bien mais ne me recopie le total que d'une seule cellule et
non


de toutes mes celleules de totaux.

Celle de ru-th a l'air de bien marcher, mais après avoir rajouté des
données


dans mon tableau initial et actualisé mon tcd la procédure n'écrase pas
ma


ligne récapitulative existante.
Il me faut effacer cette ligne et réexécuter la procédure pour avoir une
récap prenant en compte les nouvelles données entrées.

A+

C15


"ru-th" a écrit dans le message de
news:

Salut
ce qui en Vba donnerait
Sub test2()
ligne = [match("Total",A:A,0)]
col = Range("IV" & ligne).End(xlToLeft).Column
Range("A3:" & Cells(3, col).Address).Value = Range("A" & ligne & ":" &
Cells(ligne, col).Address).Value
End Sub

a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"isabelle" a écrit dans le message de
news:

bonjour C15,

c'est possible de le faire avec une formule,
=INDIRECT(ADRESSE(EQUIV("Total";A:A;0);2))


définition de la formule :
exemple si le ou les totals se trouvent en colonne A

EQUIV("Total";A:A;0)
retourne la ligne du premier "Total" trouver dans cette colonne
il faudrait additionner ou soustraire une quantité selon le cas pour
arriver à la bonne ligne

ADRESSE(EQUIV("Total";A:A;0);2)
retourne l'adresse de la valeur cherché, dans cette exemple j'ai choisi
la valeur de la colonne B ( chiffre 2 de la formule)

=INDIRECT(ADRESSE(EQUIV("Total";A:A;0);2))
et le résultat final en utilisant la fonction Indirect pour avoir le
contenue de l'adresse trouver

isabelle


Bonjour à tous et toutes,

J'ai un tableau croisé dynamique qui s'appelle TCD.
Je voudrai récupérer la dernière ligne (celle où apparaissent les


totaux)


pour l'afficher en ligne 3 de ma feuille de calcul afin de voir tout


de



suite cette ligne récapitulative.

J'avais trouvé cette procédure pour récupérer la dernière cellule de


ce



tableau (où apparaît le total général) :

Dim Lignes As Integer
Dim Colonnes As Integer
Lignes = Range("TCD").Rows.Count - 1
Colonnes = Range("TCD").Columns.Count - 1

Range("TCD").Cells(1, 1).Offset(Lignes, Colonnes).Select


With Selection








Range("b5").Formula = ActiveCell
End With

Je n'arrive pas à adapter la ligne Range ...pour sélectionner ma


denière



ligne.

Merci de votre aide

a+

C15
























Avatar
C15
Rebonsoir à tous et toutes,

Indépendemment de la question précédente, je m'aperçois que si je saisis une
nouvelle donnée pour le champ que j'ai mis en colonne, le tcd est bien mis à
jour et comporte donc une colonne supplémentaire, mais la ligne
récapitulative de mes totaux ne fait pas apparaître cette nouvelle donnée.

Merci de continuer à m'aider

A+

C15


"C15" <Mé a écrit dans le message de
news:408764fd$0$7781$
Merci de ces réponses.
Mais question bête comment exécuter Worksheet_Calculate() ?

A+

C15
"Benead" a écrit dans le message
de

news:
Bonjour C15,

Concernant la formule d'Isabelle :

En A3 , mettre ce que tu veux sauf Total (Rappel, Totaux...)
En B3 : =INDIRECT(ADRESSE(EQUIV("Total";$A:$A;0);COLONNE()))
puis faire une copie incrémentée toutes les colonnes de ton tableau

Pour exemple Isabelle a mis la colonne B et te l'a dit.
En remplacant "2" par Colonne() cela devrait te convenir mais l'oublie
pas


de remplacer A:A par $A:$A pour que la copie fonctionne.

Concernant la macro de Thierry, mets la dans l'événement
Worksheet_Calculate de la feuille :


Private Sub Worksheet_Calculate()
Rows(3).ClearContents
ligne = [match("Total",A:A,0)]
col = Range("IV" & ligne).End(xlToLeft).Column
Range("A3:" & Cells(3, col).Address).Value = Range("A" & ligne & ":" &
Cells(ligne, col).Address).Value

End Sub

A+
Benead

C15 a écrit:
Bonjour et merci à tous les 2.
J'ai essayé vos procédures et j'ai un petit souci avec celle
d'Isabelle,



cela marche bien mais ne me recopie le total que d'une seule cellule
et



non
de toutes mes celleules de totaux.

Celle de ru-th a l'air de bien marcher, mais après avoir rajouté des
données


dans mon tableau initial et actualisé mon tcd la procédure n'écrase
pas



ma
ligne récapitulative existante.
Il me faut effacer cette ligne et réexécuter la procédure pour avoir
une



récap prenant en compte les nouvelles données entrées.

A+

C15


"ru-th" a écrit dans le message de
news:

Salut
ce qui en Vba donnerait
Sub test2()
ligne = [match("Total",A:A,0)]
col = Range("IV" & ligne).End(xlToLeft).Column
Range("A3:" & Cells(3, col).Address).Value = Range("A" & ligne & ":" &
Cells(ligne, col).Address).Value
End Sub

a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"isabelle" a écrit dans le message de
news:

bonjour C15,

c'est possible de le faire avec une formule,
=INDIRECT(ADRESSE(EQUIV("Total";A:A;0);2))


définition de la formule :
exemple si le ou les totals se trouvent en colonne A

EQUIV("Total";A:A;0)
retourne la ligne du premier "Total" trouver dans cette colonne
il faudrait additionner ou soustraire une quantité selon le cas pour
arriver à la bonne ligne

ADRESSE(EQUIV("Total";A:A;0);2)
retourne l'adresse de la valeur cherché, dans cette exemple j'ai
choisi





la valeur de la colonne B ( chiffre 2 de la formule)

=INDIRECT(ADRESSE(EQUIV("Total";A:A;0);2))
et le résultat final en utilisant la fonction Indirect pour avoir le
contenue de l'adresse trouver

isabelle


Bonjour à tous et toutes,

J'ai un tableau croisé dynamique qui s'appelle TCD.
Je voudrai récupérer la dernière ligne (celle où apparaissent les


totaux)


pour l'afficher en ligne 3 de ma feuille de calcul afin de voir tout


de



suite cette ligne récapitulative.

J'avais trouvé cette procédure pour récupérer la dernière cellule de


ce



tableau (où apparaît le total général) :

Dim Lignes As Integer
Dim Colonnes As Integer
Lignes = Range("TCD").Rows.Count - 1
Colonnes = Range("TCD").Columns.Count - 1

Range("TCD").Cells(1, 1).Offset(Lignes, Colonnes).Select


With Selection








Range("b5").Formula = ActiveCell
End With

Je n'arrive pas à adapter la ligne Range ...pour sélectionner ma


denière



ligne.

Merci de votre aide

a+

C15




























Avatar
Philippe.R
Bonsoir,
Worksheet_Calculate() est automatiquement exécuté à chaque recalcul de la feuille, qu'il soit lancé
manuellement par F9 ou bien automatiquement du fait d'un calcul quelconque dans la feuille considérée.
--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002

"C15" <Mé a écrit dans le message de
news:408764fd$0$7781$
Merci de ces réponses.
Mais question bête comment exécuter Worksheet_Calculate() ?

A+

C15
"Benead" a écrit dans le message de
news:
Bonjour C15,

Concernant la formule d'Isabelle :

En A3 , mettre ce que tu veux sauf Total (Rappel, Totaux...)
En B3 : =INDIRECT(ADRESSE(EQUIV("Total";$A:$A;0);COLONNE()))
puis faire une copie incrémentée toutes les colonnes de ton tableau

Pour exemple Isabelle a mis la colonne B et te l'a dit.
En remplacant "2" par Colonne() cela devrait te convenir mais l'oublie pas
de remplacer A:A par $A:$A pour que la copie fonctionne.


Concernant la macro de Thierry, mets la dans l'événement
Worksheet_Calculate de la feuille :


Private Sub Worksheet_Calculate()
Rows(3).ClearContents
ligne = [match("Total",A:A,0)]
col = Range("IV" & ligne).End(xlToLeft).Column
Range("A3:" & Cells(3, col).Address).Value = Range("A" & ligne & ":" &
Cells(ligne, col).Address).Value

End Sub

A+
Benead

C15 a écrit:
Bonjour et merci à tous les 2.
J'ai essayé vos procédures et j'ai un petit souci avec celle d'Isabelle,
cela marche bien mais ne me recopie le total que d'une seule cellule et
non


de toutes mes celleules de totaux.

Celle de ru-th a l'air de bien marcher, mais après avoir rajouté des
données


dans mon tableau initial et actualisé mon tcd la procédure n'écrase pas
ma


ligne récapitulative existante.
Il me faut effacer cette ligne et réexécuter la procédure pour avoir une
récap prenant en compte les nouvelles données entrées.

A+

C15


"ru-th" a écrit dans le message de
news:

Salut
ce qui en Vba donnerait
Sub test2()
ligne = [match("Total",A:A,0)]
col = Range("IV" & ligne).End(xlToLeft).Column
Range("A3:" & Cells(3, col).Address).Value = Range("A" & ligne & ":" &
Cells(ligne, col).Address).Value
End Sub

a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"isabelle" a écrit dans le message de
news:

bonjour C15,

c'est possible de le faire avec une formule,
=INDIRECT(ADRESSE(EQUIV("Total";A:A;0);2))


définition de la formule :
exemple si le ou les totals se trouvent en colonne A

EQUIV("Total";A:A;0)
retourne la ligne du premier "Total" trouver dans cette colonne
il faudrait additionner ou soustraire une quantité selon le cas pour
arriver à la bonne ligne

ADRESSE(EQUIV("Total";A:A;0);2)
retourne l'adresse de la valeur cherché, dans cette exemple j'ai choisi
la valeur de la colonne B ( chiffre 2 de la formule)

=INDIRECT(ADRESSE(EQUIV("Total";A:A;0);2))
et le résultat final en utilisant la fonction Indirect pour avoir le
contenue de l'adresse trouver

isabelle


Bonjour à tous et toutes,

J'ai un tableau croisé dynamique qui s'appelle TCD.
Je voudrai récupérer la dernière ligne (celle où apparaissent les


totaux)


pour l'afficher en ligne 3 de ma feuille de calcul afin de voir tout


de



suite cette ligne récapitulative.

J'avais trouvé cette procédure pour récupérer la dernière cellule de


ce



tableau (où apparaît le total général) :

Dim Lignes As Integer
Dim Colonnes As Integer
Lignes = Range("TCD").Rows.Count - 1
Colonnes = Range("TCD").Columns.Count - 1

Range("TCD").Cells(1, 1).Offset(Lignes, Colonnes).Select


With Selection








Range("b5").Formula = ActiveCell
End With

Je n'arrive pas à adapter la ligne Range ...pour sélectionner ma


denière



ligne.

Merci de votre aide

a+

C15




























Avatar
Benead
Salut C15

Pour installer le code que Worksheet_Calculate je t'ai donné :

Sous Excel :
1 - Alt+F11 pour afficher la fenêtre VBE
2 - Ctrl+R pour afficher l'explorateur de projet
3 - Double clic dans la fenêtre de la feuille ou se trouve ton TCD

A+
Benead
Bretagne
Xl97
-------- ;-)

C15 a écrit:
Merci de ces réponses.
Mais question bête comment exécuter Worksheet_Calculate() ?

A+

C15
"Benead" a écrit dans le message de
news:

Bonjour C15,

Concernant la formule d'Isabelle :

En A3 , mettre ce que tu veux sauf Total (Rappel, Totaux...)
En B3 : =INDIRECT(ADRESSE(EQUIV("Total";$A:$A;0);COLONNE()))
puis faire une copie incrémentée toutes les colonnes de ton tableau

Pour exemple Isabelle a mis la colonne B et te l'a dit.
En remplacant "2" par Colonne() cela devrait te convenir mais l'oublie pas


de remplacer A:A par $A:$A pour que la copie fonctionne.

Concernant la macro de Thierry, mets la dans l'événement


Worksheet_Calculate de la feuille :

Private Sub Worksheet_Calculate()
Rows(3).ClearContents
ligne = [match("Total",A:A,0)]
col = Range("IV" & ligne).End(xlToLeft).Column
Range("A3:" & Cells(3, col).Address).Value = Range("A" & ligne & ":" &


Cells(ligne, col).Address).Value

End Sub

A+
Benead

C15 a écrit:

Bonjour et merci à tous les 2.
J'ai essayé vos procédures et j'ai un petit souci avec celle d'Isabelle,
cela marche bien mais ne me recopie le total que d'une seule cellule et


non


de toutes mes celleules de totaux.

Celle de ru-th a l'air de bien marcher, mais après avoir rajouté des


données


dans mon tableau initial et actualisé mon tcd la procédure n'écrase pas


ma


ligne récapitulative existante.
Il me faut effacer cette ligne et réexécuter la procédure pour avoir une
récap prenant en compte les nouvelles données entrées.

A+

C15


"ru-th" a écrit dans le message de
news:


Salut
ce qui en Vba donnerait
Sub test2()
ligne = [match("Total",A:A,0)]
col = Range("IV" & ligne).End(xlToLeft).Column
Range("A3:" & Cells(3, col).Address).Value = Range("A" & ligne & ":" &
Cells(ligne, col).Address).Value
End Sub

a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"isabelle" a écrit dans le message de
news:


bonjour C15,

c'est possible de le faire avec une formule,
=INDIRECT(ADRESSE(EQUIV("Total";A:A;0);2))


définition de la formule :
exemple si le ou les totals se trouvent en colonne A

EQUIV("Total";A:A;0)
retourne la ligne du premier "Total" trouver dans cette colonne
il faudrait additionner ou soustraire une quantité selon le cas pour
arriver à la bonne ligne

ADRESSE(EQUIV("Total";A:A;0);2)
retourne l'adresse de la valeur cherché, dans cette exemple j'ai choisi
la valeur de la colonne B ( chiffre 2 de la formule)

=INDIRECT(ADRESSE(EQUIV("Total";A:A;0);2))
et le résultat final en utilisant la fonction Indirect pour avoir le
contenue de l'adresse trouver

isabelle



Bonjour à tous et toutes,

J'ai un tableau croisé dynamique qui s'appelle TCD.
Je voudrai récupérer la dernière ligne (celle où apparaissent les


totaux)



pour l'afficher en ligne 3 de ma feuille de calcul afin de voir tout


de




suite cette ligne récapitulative.

J'avais trouvé cette procédure pour récupérer la dernière cellule de


ce




tableau (où apparaît le total général) :

Dim Lignes As Integer
Dim Colonnes As Integer
Lignes = Range("TCD").Rows.Count - 1
Colonnes = Range("TCD").Columns.Count - 1


Range("TCD").Cells(1, 1).Offset(Lignes, Colonnes).Select


With Selection








Range("b5").Formula = ActiveCell
End With

Je n'arrive pas à adapter la ligne Range ...pour sélectionner ma


denière




ligne.

Merci de votre aide

a+

C15

























Avatar
C15
Bonjour et merci de vos réponses,

J'avais posé cette question de l'événement car je fais beaucoup d'Access ;
par rapport à un élément d'un formulaire ou d'un état il existe beaucoup
d'événements pour lesquels un code peut s'éxécuter.

Par contre si vous pouviez m'aider concernant la question complémentaire que
j'ai formulée, cela m'arrangerait.

A+

C
"Benead" a écrit dans le message de
news:
Salut C15

Pour installer le code que Worksheet_Calculate je t'ai donné :

Sous Excel :
1 - Alt+F11 pour afficher la fenêtre VBE
2 - Ctrl+R pour afficher l'explorateur de projet
3 - Double clic dans la fenêtre de la feuille ou se trouve ton TCD

A+
Benead
Bretagne
Xl97
-------- ;-)

C15 a écrit:
Merci de ces réponses.
Mais question bête comment exécuter Worksheet_Calculate() ?

A+

C15
"Benead" a écrit dans le
message de


news:

Bonjour C15,

Concernant la formule d'Isabelle :

En A3 , mettre ce que tu veux sauf Total (Rappel, Totaux...)
En B3 : =INDIRECT(ADRESSE(EQUIV("Total";$A:$A;0);COLONNE()))
puis faire une copie incrémentée toutes les colonnes de ton tableau

Pour exemple Isabelle a mis la colonne B et te l'a dit.
En remplacant "2" par Colonne() cela devrait te convenir mais l'oublie
pas




de remplacer A:A par $A:$A pour que la copie fonctionne.

Concernant la macro de Thierry, mets la dans l'événement


Worksheet_Calculate de la feuille :

Private Sub Worksheet_Calculate()
Rows(3).ClearContents
ligne = [match("Total",A:A,0)]
col = Range("IV" & ligne).End(xlToLeft).Column
Range("A3:" & Cells(3, col).Address).Value = Range("A" & ligne & ":" &


Cells(ligne, col).Address).Value

End Sub

A+
Benead

C15 a écrit:

Bonjour et merci à tous les 2.
J'ai essayé vos procédures et j'ai un petit souci avec celle
d'Isabelle,




cela marche bien mais ne me recopie le total que d'une seule cellule et


non


de toutes mes celleules de totaux.

Celle de ru-th a l'air de bien marcher, mais après avoir rajouté des


données


dans mon tableau initial et actualisé mon tcd la procédure n'écrase pas


ma


ligne récapitulative existante.
Il me faut effacer cette ligne et réexécuter la procédure pour avoir
une




récap prenant en compte les nouvelles données entrées.

A+

C15


"ru-th" a écrit dans le message de
news:


Salut
ce qui en Vba donnerait
Sub test2()
ligne = [match("Total",A:A,0)]
col = Range("IV" & ligne).End(xlToLeft).Column
Range("A3:" & Cells(3, col).Address).Value = Range("A" & ligne & ":" &
Cells(ligne, col).Address).Value
End Sub

a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"isabelle" a écrit dans le message de
news:


bonjour C15,

c'est possible de le faire avec une formule,
=INDIRECT(ADRESSE(EQUIV("Total";A:A;0);2))


définition de la formule :
exemple si le ou les totals se trouvent en colonne A

EQUIV("Total";A:A;0)
retourne la ligne du premier "Total" trouver dans cette colonne
il faudrait additionner ou soustraire une quantité selon le cas pour
arriver à la bonne ligne

ADRESSE(EQUIV("Total";A:A;0);2)
retourne l'adresse de la valeur cherché, dans cette exemple j'ai
choisi






la valeur de la colonne B ( chiffre 2 de la formule)

=INDIRECT(ADRESSE(EQUIV("Total";A:A;0);2))
et le résultat final en utilisant la fonction Indirect pour avoir le
contenue de l'adresse trouver

isabelle



Bonjour à tous et toutes,

J'ai un tableau croisé dynamique qui s'appelle TCD.
Je voudrai récupérer la dernière ligne (celle où apparaissent les


totaux)



pour l'afficher en ligne 3 de ma feuille de calcul afin de voir tout


de




suite cette ligne récapitulative.

J'avais trouvé cette procédure pour récupérer la dernière cellule de


ce




tableau (où apparaît le total général) :

Dim Lignes As Integer
Dim Colonnes As Integer
Lignes = Range("TCD").Rows.Count - 1
Colonnes = Range("TCD").Columns.Count - 1


Range("TCD").Cells(1, 1).Offset(Lignes, Colonnes).Select


With Selection








Range("b5").Formula = ActiveCell
End With

Je n'arrive pas à adapter la ligne Range ...pour sélectionner ma


denière




ligne.

Merci de votre aide

a+

C15




























Avatar
Benead
Salut C15,

Si tu mets l'événement Worksheet_Calculate en bonne place, ça le fait.
Si tu utilises la formule, il faut que tu la mettes dans autant de cellules qu'il pourrait y avoir de colonnes avec un format de nombre "@".

Si je n'ai pas compris la question, merci de la reformuler.

A+
Benead
Bretagne
Xl97
-------- ;-)

C15 a écrit:
Rebonsoir à tous et toutes,

Indépendemment de la question précédente, je m'aperçois que si je saisis une
nouvelle donnée pour le champ que j'ai mis en colonne, le tcd est bien mis à
jour et comporte donc une colonne supplémentaire, mais la ligne
récapitulative de mes totaux ne fait pas apparaître cette nouvelle donnée.

Merci de continuer à m'aider

A+

C15


"C15" <Mé a écrit dans le message de
news:408764fd$0$7781$

Merci de ces réponses.
Mais question bête comment exécuter Worksheet_Calculate() ?

A+

C15
"Benead" a écrit dans le message


de

news:

Bonjour C15,

Concernant la formule d'Isabelle :

En A3 , mettre ce que tu veux sauf Total (Rappel, Totaux...)
En B3 : =INDIRECT(ADRESSE(EQUIV("Total";$A:$A;0);COLONNE()))
puis faire une copie incrémentée toutes les colonnes de ton tableau

Pour exemple Isabelle a mis la colonne B et te l'a dit.
En remplacant "2" par Colonne() cela devrait te convenir mais l'oublie


pas


de remplacer A:A par $A:$A pour que la copie fonctionne.

Concernant la macro de Thierry, mets la dans l'événement


Worksheet_Calculate de la feuille :

Private Sub Worksheet_Calculate()
Rows(3).ClearContents
ligne = [match("Total",A:A,0)]
col = Range("IV" & ligne).End(xlToLeft).Column
Range("A3:" & Cells(3, col).Address).Value = Range("A" & ligne & ":" &


Cells(ligne, col).Address).Value

End Sub

A+
Benead

C15 a écrit:

Bonjour et merci à tous les 2.
J'ai essayé vos procédures et j'ai un petit souci avec celle


d'Isabelle,



cela marche bien mais ne me recopie le total que d'une seule cellule


et



non

de toutes mes celleules de totaux.

Celle de ru-th a l'air de bien marcher, mais après avoir rajouté des


données


dans mon tableau initial et actualisé mon tcd la procédure n'écrase


pas



ma

ligne récapitulative existante.
Il me faut effacer cette ligne et réexécuter la procédure pour avoir


une



récap prenant en compte les nouvelles données entrées.

A+

C15


"ru-th" a écrit dans le message de
news:


Salut
ce qui en Vba donnerait
Sub test2()
ligne = [match("Total",A:A,0)]
col = Range("IV" & ligne).End(xlToLeft).Column
Range("A3:" & Cells(3, col).Address).Value = Range("A" & ligne & ":" &
Cells(ligne, col).Address).Value
End Sub

a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"isabelle" a écrit dans le message de
news:


bonjour C15,

c'est possible de le faire avec une formule,
=INDIRECT(ADRESSE(EQUIV("Total";A:A;0);2))


définition de la formule :
exemple si le ou les totals se trouvent en colonne A

EQUIV("Total";A:A;0)
retourne la ligne du premier "Total" trouver dans cette colonne
il faudrait additionner ou soustraire une quantité selon le cas pour
arriver à la bonne ligne

ADRESSE(EQUIV("Total";A:A;0);2)
retourne l'adresse de la valeur cherché, dans cette exemple j'ai


choisi





la valeur de la colonne B ( chiffre 2 de la formule)

=INDIRECT(ADRESSE(EQUIV("Total";A:A;0);2))
et le résultat final en utilisant la fonction Indirect pour avoir le
contenue de l'adresse trouver

isabelle



Bonjour à tous et toutes,

J'ai un tableau croisé dynamique qui s'appelle TCD.
Je voudrai récupérer la dernière ligne (celle où apparaissent les


totaux)



pour l'afficher en ligne 3 de ma feuille de calcul afin de voir tout


de




suite cette ligne récapitulative.

J'avais trouvé cette procédure pour récupérer la dernière cellule de


ce




tableau (où apparaît le total général) :

Dim Lignes As Integer
Dim Colonnes As Integer
Lignes = Range("TCD").Rows.Count - 1
Colonnes = Range("TCD").Columns.Count - 1


Range("TCD").Cells(1, 1).Offset(Lignes, Colonnes).Select


With Selection








Range("b5").Formula = ActiveCell
End With

Je n'arrive pas à adapter la ligne Range ...pour sélectionner ma


denière




ligne.

Merci de votre aide

a+

C15