Manipulation de cellules et dates

rouday55 Messages postés 40 Date d'inscription jeudi 28 février 2008 Statut Membre Dernière intervention 8 décembre 2011 - 8 déc. 2011 à 15:40
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 8 déc. 2011 à 20:19
bonjour à tous les EXCELlents !
Je soliscite votre aide aujourd'hui. Je bloque sur un problème tout bête dans la manipulation de données avec VBA. Je m'explique:
J'ai une ligne dans laquelle sont générées des dates les unes a coté des autres. Je souhaite utiliser ces valeurs que j'affecte aux cellules d'une même colonne. Le seul hic, c'est qu'il ne s'agit pas de faire une simple transposée. Je voudrais en effet laisser un nombre de cellules vides entre chaque valeur de cette colonne. Ce nombre de cellules vides est une constante.

J'ai essayé ceci qui ne marche évidement ^pas
    Sheets("Recapitulatif").Select
    nblignes = Range("A2").End(xlDown).Row
    nbcolonnes = Range("A1").End(xlToRight).Column
    
    
        
        For i = 1 To (nblignes*nbcolonnes)
           For j = 5 To nbcolonnes
           Cells(i * nblignes, 2).Value = Cells(1, j).Value
           Next j
        Next i


En résumé je voudrais automatiser cette tâche :
Cells(1 * nblignes + 1, 2).Value = Cells(1, 5).Value
Cells(2 * nblignes + 1, 2).Value = Cells(1, 6).Value
Cells(3 * nblignes + 1, 2).Value = Cells(1, 7).Value
ainsi de suite jusqu'a Cells(nbcolonnes * nblignes + 1, 2).Value = Cells(1, nbcolonnes=145).Value

Avez vous une idée avec un style de code assez simple pour un débutant comme moi ? :D je vous remercie

13 réponses

cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
8 déc. 2011 à 16:00
Salut

Intéresse-toi à .Offset qui s'applique à Range : Il te permettra de t'adresser à des cellules situées relativement au Range.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
8 déc. 2011 à 16:24
Pendant que tu es dans l'aide, regarde les différences entre
.Value
.Value2 et
.Text
d'une cellule, c'est important, surtout quand on manipule des dates
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 234
8 déc. 2011 à 17:10
Bonjour,

@rouday55 :
tu te compliques inutilement la vie, alors que ton message montre que tu sais ce qu'est une transposition.
Il te suffit de faire ta transposée vers la plage de ton choix, puis, dans cette plage, d'y insérer tes lignes en partant du bas de la plage vers le haut de la plage.
A ce stade, je te laisse d'abord essayer seul.

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
rouday55 Messages postés 40 Date d'inscription jeudi 28 février 2008 Statut Membre Dernière intervention 8 décembre 2011
8 déc. 2011 à 17:15
Merci à tous les 3 pour vos réponses.
ucfoutu, j'ai essayé ce que tu m'as dit mais ca me dérange un peu de créer une nouvelle feuille pour faire la transposition puis de la copier coller sur la bonne feuille.

quant a l'offset, jack je ne connais pas du tout comment ca s'utilise dans de cas là
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 234
8 déc. 2011 à 17:48
ucfoutu, j'ai essayé ce que tu m'as dit mais ca me dérange un peu de créer une nouvelle feuille pour faire la transposition puis de la copier coller sur la bonne feuille.


Où et quand t'ai-je parlé de créer pour cela une nouvelle feuille ?
où aurais-tu vu qu'une transposition nécessite l'utilisation d'une feuille tierce ?
Il me semble que tu t'imposes à toi même ce dont tu dis que cela te dérange !


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
8 déc. 2011 à 17:49
As-tu seulement lu la description, regardé l'exemple dans l'aide et tenté de faire de petits essais dans une nouvelle feuille ?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 234
8 déc. 2011 à 18:01
Et j'ajoute ceci (lis bien et ne lis que cela, sans extrapoler je ne sais quoi) :
Si, en outre, il ne s'agit que des valeurs et pas du reste (mise en forme, format, etc ...), c'est encore plus facile à mettre en oeuvre !


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
rouday55 Messages postés 40 Date d'inscription jeudi 28 février 2008 Statut Membre Dernière intervention 8 décembre 2011
8 déc. 2011 à 18:43
je n'extrapole pas mais sur la feuille actuelle, je n'ai pas la place de faire des transpositions etc. La feuille est bourrée de données un peu partout. J'utilise donc une feuille annexe que j'ajoute pour faire la transposition et j'insère des lignes vides entre les cellules. Enfin je copie tout et je colle dans ma feuille principale en écrasant certaines anciennes données et je supprime la feuille annexes. J'aurais pensé pouvoir travailler uniquement avec des boucles et des conditions afin de faire des tests avec les cellules a l'aide d'une formule un peu mathématique mais bon ce nest pas grave, ce qui compte c'est le résultat certes un peu long.
merci en tout cas
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 234
8 déc. 2011 à 18:50
Je répète donc :
Absolument aucune nécessité d'une feuille tierce pour obtenir, sur ta feuille à transposer elle-même la transposée de cette feuille !
Je ne montrerai toutefois pas ici le tout petit bout de code à écrire tant que ce sujet (comme tous ceux que tu as ouverts sur ce forum) n'aura pas été déplacé dans la section dans laquelle il aurait dû être ouvert par toi. (cela fait quand même 3 années que tu fréquentes ce forum, non ?).
Alors maintenant : patience


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
rouday55 Messages postés 40 Date d'inscription jeudi 28 février 2008 Statut Membre Dernière intervention 8 décembre 2011
8 déc. 2011 à 19:37
3 années que je fréquente le forum et 3 années et 3 années que ca ne m'apporte pas grand chose. ce n'est pas grave je reviendrai l'année prochaine pour poster des questions sur le python pascal ou fortran. ;)
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 234
8 déc. 2011 à 19:49
Ce sera en ce qui te concerne comme tu voudras, bien évidemment
et ce sera non moins évidemment, en ce qui me concerne, comme je le vois, le sens et le pense .
Et te mettre ici, dans une section dans laquelle aucun forumeur VBA n'y serait censé "fouiller" une solution, un bout de code VBA, signifierait pour moi que je considèrerais (comme toi apparemment) que ce forum n'a pas pour vocation celle de venir en aide à un groupe de développeurs utilisant le même outil de développement, mais ... celle d'apporter/servir_tout_cuit à un seul individu un "bout de code" qu'il attend.
Ce n'est pas l'idée que je me fais d'un forum et nul ne me fera changer d'avis sur ce point.
Je te souhaite bonne chance.



____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
rouday55 Messages postés 40 Date d'inscription jeudi 28 février 2008 Statut Membre Dernière intervention 8 décembre 2011
8 déc. 2011 à 20:13
Merci
Il n'y a pas de soucis. J'ai étudié à l'école les bases de programmation il y a des années de cela et je trouve triste que lorsqu'on demande de l'aide pour gagner du temps et être efficace dans son boulot, on nous considère comme si nous étions des étudiants en quête de solutions pour leur devoirs avec des bribes d'indices et des sous-entendus.
No way, ce n'est pas grave, la prochaine où j'aurai envie de jouer aux devinettes je saurai où aller
Bonne continuation.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 234
8 déc. 2011 à 20:19
la prochaine où j'aurai envie de jouer aux devinettes je saurai où aller

Je n'en doute pas ! tu as toutes les compétences nécessaires pour aller frapper aux portes qui ne sont pas celles qui correspondent à tes connaissances, à commencer par le plus simple : ton outil de développement.
La prochaine fois que tu auras besoin d'un conseil pour réaliser une délicieuse tarte aux fruits, n'hésite pas à les demander là où tu penses recevoir la réponse appropriée : chez un charcutier, par exemple.
Allons bon !


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0