Forum des développeurs  

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é.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel

Excel Forum d'entraide sur Excel

Réponse
 
Outils de la discussion
Vieux 27/08/2008, 10h23   #1 (permalink)
Membre expérimenté
 
Date d'inscription: août 2007
Messages: 524
Par défaut reporter des valeurs de cellules

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
marc56 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/08/2008, 12h15   #2 (permalink)
Membre Expert
 
Date d'inscription: juillet 2007
Localisation: Loire Atlantique (44)
Âge: 52
Messages: 1 000
Par défaut

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
A+
Gorfael est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/08/2008, 18h48   #3 (permalink)
Membre expérimenté
 
Date d'inscription: août 2007
Messages: 524
Par défaut

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.
marc56 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 28/08/2008, 01h04   #4 (permalink)
Membre Expert
 
Date d'inscription: juillet 2007
Localisation: Loire Atlantique (44)
Âge: 52
Messages: 1 000
Par défaut

Salut marc56 et le forum
Citation:
Quelle est la portion qui va chercher la première ligne vide et comment cela fonctionne?
ça dépend combien tu payes
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
Gorfael est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 28/08/2008, 01h24   #5 (permalink)
Membre expérimenté
 
Date d'inscription: août 2007
Messages: 524
Par défaut

C'est sans doute l'heure qui y est pour quelque chose, mais cela n'est guère plus clair. Ça marche, c'est le principale.
Bonne nuit et merci encore.
Marc
marc56 est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide