Macro de synthèse après déclenchement touche
Résolu/Fermé
Edaine
Messages postés
62
Date d'inscription
mercredi 8 juin 2011
Statut
Membre
Dernière intervention
23 avril 2012
-
14 juin 2011 à 14:52
Edaine Messages postés 62 Date d'inscription mercredi 8 juin 2011 Statut Membre Dernière intervention 23 avril 2012 - 15 juin 2011 à 10:35
Edaine Messages postés 62 Date d'inscription mercredi 8 juin 2011 Statut Membre Dernière intervention 23 avril 2012 - 15 juin 2011 à 10:35
A voir également:
- Macro de synthèse après déclenchement touche
- Touche rémanente - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Touche insert - Guide
- Quelle touche pour réinitialiser un ordinateur ? - Guide
16 réponses
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
14 juin 2011 à 15:22
14 juin 2011 à 15:22
Bonjour,
je ne sais pas l'associer à un bouton mais voici la macro que tu demandes :
sub somme
i = 1 'si ton tableau commence en ligne 2, mets i=2
do while cells(i,4)<>"" 'va chercher la première ligne vide en colonne D, il ne faut pas que tu ais de trou
i=i+1
loop
cells(i,4).Select
ActiveCell.FormulaR1C1 = "=SUM(R1C:R" & i -1 & "C)"
cells(i,4).copy
range(cells(i,4),cells(i,9)).select
activesheet.paste
cells(1,1).select
end sub
je ne sais pas l'associer à un bouton mais voici la macro que tu demandes :
sub somme
i = 1 'si ton tableau commence en ligne 2, mets i=2
do while cells(i,4)<>"" 'va chercher la première ligne vide en colonne D, il ne faut pas que tu ais de trou
i=i+1
loop
cells(i,4).Select
ActiveCell.FormulaR1C1 = "=SUM(R1C:R" & i -1 & "C)"
cells(i,4).copy
range(cells(i,4),cells(i,9)).select
activesheet.paste
cells(1,1).select
end sub
Edaine
Messages postés
62
Date d'inscription
mercredi 8 juin 2011
Statut
Membre
Dernière intervention
23 avril 2012
14 juin 2011 à 15:25
14 juin 2011 à 15:25
MErci pour la réponse,
Qu'est-ce que tu entends par " il ne faut pas qu'il y ait de trou ? "
En faite je peux sur une ligne avoir des trous et des valeurs :s
Qu'est-ce que tu entends par " il ne faut pas qu'il y ait de trou ? "
En faite je peux sur une ligne avoir des trous et des valeurs :s
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
14 juin 2011 à 15:32
14 juin 2011 à 15:32
do while cells(i,4)<>"" 'va chercher la première ligne vide en colonne D, il ne faut pas que tu ais de trou
i=i+1
loop
signifie je regarde la ligne i et la colonne 4 si elle est vide.
Si elle est pleine, elle passe à la ligne suivante.
si la ligne i+1 et la colonne 5 est vide, la macro s'arrête.
si tu as un tableau qui est :
1
vide
3
4
vide
la boucle s'arrêtera en 2ème ligne et fera ta somme en 2è ligne
par contre, si tu as :
1
2
3
4
5
vide
vide
vid
la macro s'arrête en ligne 6 et fera ta somme en ligne 6.
Donc si tu as des trous en colonne4 (D), choisis une autre colonne ou tu es sure que tu n'as pas de trou. sinon, je sais pas faire.
i=i+1
loop
signifie je regarde la ligne i et la colonne 4 si elle est vide.
Si elle est pleine, elle passe à la ligne suivante.
si la ligne i+1 et la colonne 5 est vide, la macro s'arrête.
si tu as un tableau qui est :
1
vide
3
4
vide
la boucle s'arrêtera en 2ème ligne et fera ta somme en 2è ligne
par contre, si tu as :
1
2
3
4
5
vide
vide
vid
la macro s'arrête en ligne 6 et fera ta somme en ligne 6.
Donc si tu as des trous en colonne4 (D), choisis une autre colonne ou tu es sure que tu n'as pas de trou. sinon, je sais pas faire.
Edaine
Messages postés
62
Date d'inscription
mercredi 8 juin 2011
Statut
Membre
Dernière intervention
23 avril 2012
14 juin 2011 à 15:33
14 juin 2011 à 15:33
Ah d'accord !
Désolée j'avais pas bien compris !
je vais essayer ça :)
Désolée j'avais pas bien compris !
je vais essayer ça :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Edaine
Messages postés
62
Date d'inscription
mercredi 8 juin 2011
Statut
Membre
Dernière intervention
23 avril 2012
14 juin 2011 à 15:42
14 juin 2011 à 15:42
En faite ça ne fonctionne pas du tout :s
J'essaie de "triturer" la macro en vain ...
J'essaie de "triturer" la macro en vain ...
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
14 juin 2011 à 16:01
14 juin 2011 à 16:01
bonjour,
as-tu compris ce que faisait la boucle au moins??
Mets ce code et appuies sur F8, tu comprendras mieux ce qu'elle fait:
sub somme
'permet de trouver la première ligne vide de la colonne 4
i = 1 'si ton tableau commence en ligne 2, mets i=2
do while cells(i,4)<>"" 'va chercher la première ligne vide en colonne D, il ne faut pas que tu ais de trou
cells(i,4).select
i=i+1
loop
'lorsque la ligne est vide, il te mets la somme
cells(i,4).Select
ActiveCell.FormulaR1C1 = "=SUM(R1C:R" & i -1 & "C)"
cells(i,4).copy
range(cells(i,4),cells(i,9)).select
activesheet.paste
cells(1,1).select
end sub
as-tu compris ce que faisait la boucle au moins??
Mets ce code et appuies sur F8, tu comprendras mieux ce qu'elle fait:
sub somme
'permet de trouver la première ligne vide de la colonne 4
i = 1 'si ton tableau commence en ligne 2, mets i=2
do while cells(i,4)<>"" 'va chercher la première ligne vide en colonne D, il ne faut pas que tu ais de trou
cells(i,4).select
i=i+1
loop
'lorsque la ligne est vide, il te mets la somme
cells(i,4).Select
ActiveCell.FormulaR1C1 = "=SUM(R1C:R" & i -1 & "C)"
cells(i,4).copy
range(cells(i,4),cells(i,9)).select
activesheet.paste
cells(1,1).select
end sub
Edaine
Messages postés
62
Date d'inscription
mercredi 8 juin 2011
Statut
Membre
Dernière intervention
23 avril 2012
14 juin 2011 à 16:20
14 juin 2011 à 16:20
oui justement,
Ca ne fait pas du tout ce que j'attendai ^^
Il faut que je fasse le lien entre les différentes feuilles au niveau du code et je rame..
Ca ne fait pas du tout ce que j'attendai ^^
Il faut que je fasse le lien entre les différentes feuilles au niveau du code et je rame..
Edaine
Messages postés
62
Date d'inscription
mercredi 8 juin 2011
Statut
Membre
Dernière intervention
23 avril 2012
14 juin 2011 à 16:21
14 juin 2011 à 16:21
La boucle fonctionen très bien
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
14 juin 2011 à 16:35
14 juin 2011 à 16:35
Explique moi ce que tu veux qu'elle fasse en me donnant un exemple.
je n'ai aps accès à cijoint donc fait le à la barbare comme je l'ai fait.
je n'ai aps accès à cijoint donc fait le à la barbare comme je l'ai fait.
Edaine
Messages postés
62
Date d'inscription
mercredi 8 juin 2011
Statut
Membre
Dernière intervention
23 avril 2012
14 juin 2011 à 17:21
14 juin 2011 à 17:21
en appuyant sur F8 :
La somme de la colonne R s'incrive dans la cellule D10
La somme de la colonne S s'incrive dans la cellule E10
La somme de la colonne T s'incrive dans la cellule F10
La somme de la colonne U s'incrive dans la cellule G10
La somme de la colonne V s'incrive dans la cellule H10
La somme de la colonne W s'incrive dans la cellule I10
Mais si il y a déjà une valeur dans la cellule D10 alors je veux qu'il écrive dans la ligne suivante..
Par exemple si
Sur la feuille "Douchette" j'ai trois ligne contenant le chiffre 1 en colonne R alors,
je veux que sur la feuille "Feuille de contrôle" soit inscrit 3 en D10
Ainsi de suite ..
et si j'ai déjà une entrée dans la ligne d'arrivée, je passe à D11
La somme de la colonne R s'incrive dans la cellule D10
La somme de la colonne S s'incrive dans la cellule E10
La somme de la colonne T s'incrive dans la cellule F10
La somme de la colonne U s'incrive dans la cellule G10
La somme de la colonne V s'incrive dans la cellule H10
La somme de la colonne W s'incrive dans la cellule I10
Mais si il y a déjà une valeur dans la cellule D10 alors je veux qu'il écrive dans la ligne suivante..
Par exemple si
Sur la feuille "Douchette" j'ai trois ligne contenant le chiffre 1 en colonne R alors,
je veux que sur la feuille "Feuille de contrôle" soit inscrit 3 en D10
Ainsi de suite ..
et si j'ai déjà une entrée dans la ligne d'arrivée, je passe à D11
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
14 juin 2011 à 19:09
14 juin 2011 à 19:09
Bonjour,
j'ai compris.
sub somme
'permet de trouver la première ligne vide de la colonne 4
i = 10 'si ton tableau commence en ligne 2, mets i=2
do while cells(i,4)<>"" 'va chercher la première ligne vide en colonne D, il ne faut pas que tu ais de trou
cells(i,4).select
i=i+1
loop
'lorsque la ligne est vide, il te mets la somme
cells(i,4).Select
ActiveCell.FormulaR1C1 = "=SUM(C18:C18)"
cells(i,4).copy
range(cells(i,4),cells(i,9)).select
activesheet.paste
cells(1,1).select
end sub
j'ai compris.
sub somme
'permet de trouver la première ligne vide de la colonne 4
i = 10 'si ton tableau commence en ligne 2, mets i=2
do while cells(i,4)<>"" 'va chercher la première ligne vide en colonne D, il ne faut pas que tu ais de trou
cells(i,4).select
i=i+1
loop
'lorsque la ligne est vide, il te mets la somme
cells(i,4).Select
ActiveCell.FormulaR1C1 = "=SUM(C18:C18)"
cells(i,4).copy
range(cells(i,4),cells(i,9)).select
activesheet.paste
cells(1,1).select
end sub
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
15 juin 2011 à 00:09
15 juin 2011 à 00:09
Bonsoir tout le monde,
une autre façon pour obtenir la ligne de la dernière cellule remplie de la colonne A (avec ou sans trou) :
lig=[A65536].end(xlup).row
et faire +1 pour avoir la ligne en dessous qui est libre
(.end(xlup) est équivalent au raccourci clavier ctrl+fleche haut)
S'il risque d'y avoir plus 65536 lignes et qu'excel 2007-2010 peut être utilisé :
Cells([A:A].Cells.Count, 1).End(xlUp).Row + 1
est compatible toutes versions d'excel
eric
une autre façon pour obtenir la ligne de la dernière cellule remplie de la colonne A (avec ou sans trou) :
lig=[A65536].end(xlup).row
et faire +1 pour avoir la ligne en dessous qui est libre
(.end(xlup) est équivalent au raccourci clavier ctrl+fleche haut)
S'il risque d'y avoir plus 65536 lignes et qu'excel 2007-2010 peut être utilisé :
Cells([A:A].Cells.Count, 1).End(xlUp).Row + 1
est compatible toutes versions d'excel
eric
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
15 juin 2011 à 08:35
15 juin 2011 à 08:35
Sub somme()
'permet de trouver la première ligne vide de la colonne 4
i = 10 'si ton tableau commence en ligne 2, mets i=2
Do While Cells(i, 4) <> "" 'va chercher la première ligne vide en colonne D, il ne faut pas que tu ais de trou
Cells(i, 4).Select
i = i + 1
Loop
'lorsque la ligne est vide, il te mets la somme
Cells(i, 4).Select
ActiveCell.FormulaR1C1 = "=SUM(C[14])"
Cells(i, 4).Copy
Range(Cells(i, 4), Cells(i, 9)).Select
ActiveSheet.Paste
Cells(1, 1).Select
End Sub
'permet de trouver la première ligne vide de la colonne 4
i = 10 'si ton tableau commence en ligne 2, mets i=2
Do While Cells(i, 4) <> "" 'va chercher la première ligne vide en colonne D, il ne faut pas que tu ais de trou
Cells(i, 4).Select
i = i + 1
Loop
'lorsque la ligne est vide, il te mets la somme
Cells(i, 4).Select
ActiveCell.FormulaR1C1 = "=SUM(C[14])"
Cells(i, 4).Copy
Range(Cells(i, 4), Cells(i, 9)).Select
ActiveSheet.Paste
Cells(1, 1).Select
End Sub
Edaine
Messages postés
62
Date d'inscription
mercredi 8 juin 2011
Statut
Membre
Dernière intervention
23 avril 2012
15 juin 2011 à 09:53
15 juin 2011 à 09:53
Le truc pour passer de la ligne vide à la prochaine fnoctionen très bien !
Par contre je voudrais faire les sommes en passant de feuille à feuille :s
Sur la feuille 2 j'ai mes colonnes R..S... etc
Sur la feuille 1 je veux les sommes de ces colonnes,
le code que tu m'as donné est :
Cells(i, 4).Select
ActiveCell.FormulaR1C1 = "=SUM(C[14])"
Cells(i, 4).Copy
Range(Cells(i, 4), Cells(i, 9)).Select
ActiveSheet.Paste
Cells(1, 1).Select
End Sub
Mais là tout se fait sur la même feuille :s
J'ai essayé de modifié en mettant des
Sheets("DOuchette").Cells(....)
Mais rien n'y fait, je n'ai toujours pas compris les conventions d'écritures ! :x
Par contre je voudrais faire les sommes en passant de feuille à feuille :s
Sur la feuille 2 j'ai mes colonnes R..S... etc
Sur la feuille 1 je veux les sommes de ces colonnes,
le code que tu m'as donné est :
Cells(i, 4).Select
ActiveCell.FormulaR1C1 = "=SUM(C[14])"
Cells(i, 4).Copy
Range(Cells(i, 4), Cells(i, 9)).Select
ActiveSheet.Paste
Cells(1, 1).Select
End Sub
Mais là tout se fait sur la même feuille :s
J'ai essayé de modifié en mettant des
Sheets("DOuchette").Cells(....)
Mais rien n'y fait, je n'ai toujours pas compris les conventions d'écritures ! :x
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
15 juin 2011 à 10:02
15 juin 2011 à 10:02
re,
on va y arriver :
Sub somme()
'permet de trouver la première ligne vide de la colonne 4
i = 10 'si ton tableau commence en ligne 2, mets i=2
Do While Cells(i, 4) <> "" 'va chercher la première ligne vide en colonne D, il ne faut pas que tu ais de trou
Cells(i, 4).Select
i = i + 1
Loop
Cells(i, 4).Select
ActiveCell.FormulaR1C1 = "=SUM(douchettes!C[14])"
Cells(i, 4).Copy
Range(Cells(i, 4), Cells(i, 9)).Select
ActiveSheet.Paste
Cells(1, 1).Select
End Sub
on va y arriver :
Sub somme()
'permet de trouver la première ligne vide de la colonne 4
i = 10 'si ton tableau commence en ligne 2, mets i=2
Do While Cells(i, 4) <> "" 'va chercher la première ligne vide en colonne D, il ne faut pas que tu ais de trou
Cells(i, 4).Select
i = i + 1
Loop
Cells(i, 4).Select
ActiveCell.FormulaR1C1 = "=SUM(douchettes!C[14])"
Cells(i, 4).Copy
Range(Cells(i, 4), Cells(i, 9)).Select
ActiveSheet.Paste
Cells(1, 1).Select
End Sub
Edaine
Messages postés
62
Date d'inscription
mercredi 8 juin 2011
Statut
Membre
Dernière intervention
23 avril 2012
15 juin 2011 à 10:12
15 juin 2011 à 10:12
Ca fonctionne !
Plus qu'à "fixer" la feuille d'arrivée ^^ Pour que ça se mette toujours dans la même !
Merci beaucoup pour ta patience :)
Merci merci !
Plus qu'à "fixer" la feuille d'arrivée ^^ Pour que ça se mette toujours dans la même !
Merci beaucoup pour ta patience :)
Merci merci !
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
15 juin 2011 à 10:16
15 juin 2011 à 10:16
Pour ca :
Sub somme()
sheets("Feuille de controle").select
'permet de trouver la première ligne vide de la colonne 4
i = 10 'si ton tableau commence en ligne 2, mets i=2
Do While Cells(i, 4) <> "" 'va chercher la première ligne vide en colonne D, il ne faut pas que tu ais de trou
Cells(i, 4).Select
i = i + 1
Loop
Cells(i, 4).Select
ActiveCell.FormulaR1C1 = "=SUM(douchettes!C[14])"
Cells(i, 4).Copy
Range(Cells(i, 4), Cells(i, 9)).Select
ActiveSheet.Paste
Cells(1, 1).Select
End Sub
Sub somme()
sheets("Feuille de controle").select
'permet de trouver la première ligne vide de la colonne 4
i = 10 'si ton tableau commence en ligne 2, mets i=2
Do While Cells(i, 4) <> "" 'va chercher la première ligne vide en colonne D, il ne faut pas que tu ais de trou
Cells(i, 4).Select
i = i + 1
Loop
Cells(i, 4).Select
ActiveCell.FormulaR1C1 = "=SUM(douchettes!C[14])"
Cells(i, 4).Copy
Range(Cells(i, 4), Cells(i, 9)).Select
ActiveSheet.Paste
Cells(1, 1).Select
End Sub
Edaine
Messages postés
62
Date d'inscription
mercredi 8 juin 2011
Statut
Membre
Dernière intervention
23 avril 2012
15 juin 2011 à 10:25
15 juin 2011 à 10:25
j'ai écris comme ça ^^
Sub Somme() 'permet de trouver la première ligne vide de la colonne 4 i = 10 'si ton tableau commence en ligne 2, mets i=2 Do While Cells(i, 4) <> "" 'va chercher la première ligne vide en colonne D, il ne faut pas que tu ais de trou Cells(i, 4).Select i = i + 1 Loop Cells(i, 4).Select ActiveCell.FormulaR1C1 = "=SUM(Douchette!C[14])" Cells(i, 4).Copy Range(Cells(i, 4), Cells(i, 9)).Select Sheets("Feuille de contrôle").Paste Cells(1, 1).Select End Sub
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
15 juin 2011 à 10:30
15 juin 2011 à 10:30
mais rajoutes cette ligne après le sub :
sheets("Feuille de controle").select
sheets("Feuille de controle").select
Edaine
Messages postés
62
Date d'inscription
mercredi 8 juin 2011
Statut
Membre
Dernière intervention
23 avril 2012
15 juin 2011 à 10:35
15 juin 2011 à 10:35
D'ac' !