![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| Excel Forum d'entraide sur Excel |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Membre expérimenté
![]() Date d'inscription: août 2007
Messages: 524
|
Bonjour le forum,
Comment reporter des valeurs de cellules dans un tableau récapitulatif avec incrémentation (voir fichier joint pour plus de détail). A l'avance, merci. Dernière modification par marc56 ; 08/09/2008 à 23h22 |
|
|
|
|
|
#2 (permalink) |
|
Membre Expert
![]() Date d'inscription: juillet 2007
Localisation: Loire Atlantique (44)
Âge: 52
Messages: 1 000
|
Salut marc56 et le forum
un proposition : Code :
If [D9] <> "" Then If [K23] = "" Then [K23].End(xlUp)(2) = [D9] [K23].End(xlUp).Offset(0, -1) = [D9].Offset(0, -3) [A9:C9].ClearContents Else MsgBox "Tableau plein" End If End If |
|
|
|
|
|
#3 (permalink) |
|
Membre expérimenté
![]() Date d'inscription: août 2007
Messages: 524
|
Bonjour Gorfael,
J'ai adapté ton code en mettant des "Range" et les "Sub" de début et de fin et çà marche. Je sais qu'il ne faut pas abuser des bonnes choses, mais si tu pouvais commenter un peu ton code, je finirai ma journée moins bête. Quelle est la portion qui va chercher la première ligne vide et comment cela fonctionne? A l'avance, merci. |
|
|
|
|
|
#4 (permalink) | |
|
Membre Expert
![]() Date d'inscription: juillet 2007
Localisation: Loire Atlantique (44)
Âge: 52
Messages: 1 000
|
Salut marc56 et le forum
Citation:
J'avais la flemme et effectivement j'ai pas comenté (comme hanté ?) If [D9] <> "" Then D9 ="" si B9 ou C9 = "" => donc si c'est pas vide, on sauvegarde Range("D9").Value <=> Range("D9") <=> [D9] <=> Cells(9, "D") <=> cells(9,4) différente notation pour la même chose If [K23] = "" Then si K23 est vide (le tableau n'est pas plein) [K23].End(xlUp)(2) = [D9] Petite astuce que j'ai piqué à frm (je crois) .End(xlUp) ou .End(xlUp)(1) pointe la dernière cellule non-vide .End(xlUp)(2),pointe la cellule après la dernière cellule non-vide .End(xlUp)(0) pointe celle d'avant (j'ai pas essayé d'autre valeur). Donc ici, la première vide après la dernière non-vide en partant de K23 et en remontant (ouf) [K23].End(xlUp).Offset(0, -1) = [D9].Offset(0, -3) comme on vient d'inscrire D9 , cette valeur est dans la dernière cellule de non-vide => on s'en sert de référence odffset(0,-1) : décaler à 0 ligne et une colonne à gauche de K => J odffset(0,-3) : décaler à 0 ligne et -3 colonnes de D9 => A9 [A9:C9].ClearContents effacer le contenu des cellules A9 à C9 Else si K23 n'est pas vide, le tableau est plein MsgBox "Tableau plein" message d'avertissement End If End If J'aime assez utiliser .End(xlUp)(2), surtout avec .Copy qui n'accepte pas la méthode Offset A+ Dernière modification par Gorfael ; 28/08/2008 à 01h29 |
|
|
|
|
![]() |
![]() |
||
reporter des valeurs de cellules
|
||
Offres d'
emploi informatique
sur Lesjeudis.com
|
| Outils de la discussion | |
|
|