Manipulation de cellules et dates

Signaler
Messages postés
40
Date d'inscription
jeudi 28 février 2008
Statut
Membre
Dernière intervention
8 décembre 2011
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
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

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
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)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
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
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
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
Messages postés
40
Date d'inscription
jeudi 28 février 2008
Statut
Membre
Dernière intervention
8 décembre 2011

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à
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
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
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
As-tu seulement lu la description, regardé l'exemple dans l'aide et tenté de faire de petits essais dans une nouvelle feuille ?
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
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
Messages postés
40
Date d'inscription
jeudi 28 février 2008
Statut
Membre
Dernière intervention
8 décembre 2011

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
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
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
Messages postés
40
Date d'inscription
jeudi 28 février 2008
Statut
Membre
Dernière intervention
8 décembre 2011

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. ;)
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
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
Messages postés
40
Date d'inscription
jeudi 28 février 2008
Statut
Membre
Dernière intervention
8 décembre 2011

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.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
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