Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/02/2012, 11h30   #1
Invité de passage
 
Homme Vincent Bass
Étudiant
Inscription : février 2012
Messages : 1
Détails du profil
Informations personnelles :
Nom : Homme Vincent Bass
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : février 2012
Messages : 1
Points : 0
Points : 0
Par défaut Copier/Coller des valeurs d'un onglet a l'autre

Bonjour a tous,

Je souhaiterai avoir votre aide concernant une macro excel que je suis entrain de réaliser
Le but de cette macro me permettra d'aller plus vite dans mon travail
Mon fichier Excel ce compose de 4 onglets
Mon premier Onglet étant "Indice"
Mon second Onglet étant "Data"
(je n'ai besoin que de ces deux la pour le moment) ^^

Dans mon premier onglet :
Dans la colonne F se situe des dates qui tous les lundis s'actualisent et ce mets a la suite des autres dates déjà présentes ! (par exemple je suis a la ligne 1886)
Les nouvelles dates actualisées doivent ce copier en colonne A (toujours a la suite des autres dates déjà présentes)
De ces nouvelles dates actualisées en colonne B C D je dois copier les formules sur toutes les nouvelles dates actualisées
Fin du premier Onglet

J'ai ainsi réalisé la macro correspondante a ce que je souhaite


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Sub Indice()
    Dim compteur As Integer
 
    compteur = 0
    ColonneF_valeur = Range("F65536").End(xlUp)
    ColonneF_ligne = Range("F65536").End(xlUp).Row
    ColonneA_valeur = Range("A65536").End(xlUp)
    ColonneA_ligne = Range("A65536").End(xlUp).Row + 1
    ColonneA_ligne_temp = Range("A65536").End(xlUp).Row
 
    If ColonneF_valeur <> ColonneA_valeur Then
 
    Do While Range("F" & ColonneF_ligne).Value <> ColonneA_valeur
    'Range("A" & Derniere_valeur_indice).Value = Range("F" & Derniere_date).Value
    compteur = compteur + 1
    ColonneF_ligne = ColonneF_ligne - 1
    'Derniere_valeur_indice = Derniere_valeur_indice + 1
    Loop
 
    ColonneF_ligne = ColonneF_ligne + 1
 
    For i = 0 To compteur
        Range("A" & ColonneA_ligne).Value = Range("F" & ColonneF_ligne).Value
        ColonneA_ligne = ColonneA_ligne + 1
        ColonneF_ligne = ColonneF_ligne + 1
    Next
 
    Range("B" & ColonneA_ligne_temp).Select
    Selection.AutoFill Destination:=Range("B" & ColonneA_ligne_temp & ":B" & ColonneA_ligne_temp + compteur), Type:=xlFillDefault
    Range("C" & ColonneA_ligne_temp).Select
    Selection.AutoFill Destination:=Range("C" & ColonneA_ligne_temp & ":C" & ColonneA_ligne_temp + compteur), Type:=xlFillDefault
    Range("D" & ColonneA_ligne_temp).Select
    Selection.AutoFill Destination:=Range("D" & ColonneA_ligne_temp & ":D" & ColonneA_ligne_temp + compteur), Type:=xlFillDefault
 
    End If
End Sub
Ensuite, dans le second onglet :
(c'est la que les choses ce compliquent)

Je souhaiterai pouvoir copier les dates actualisées dans l'onglet "Indice" et en colonne A (celles qui sont arrivé en actualisant donc..) et donc pas l'ensemble de la colonne A mais vraiment juste les nouvelles données
Et les faire basculer dans un autre Onglet qui s'appelle "Data"
A la fin des autres dates déjà présente
Par exemple dans l'onglet "Data" je suis a la ligne 2443)

Pourriez vous m'aider a copier/coller des nouvelles cellules dans un autre onglet ?

(J'ai déjà pas mal regarder sur le net mais chaque forum ou explication que je lis c'est toujours des valeurs figées, utilisable avec l'enregistreur de macro) alors que dans mon cas, tous les jours de nouvelles valeur arrivent a la suite en actualisant et c'est CES valeurs actualisé qu'il faut que je copie dans un autre onglet...

Merci par avance de votre aide
chuck95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 17h52   #2
Membre chevronné
 
Avatar de defluc
 
Architecte
Inscription : mai 2002
Messages : 1 057
Détails du profil
Informations personnelles :
Âge : 62

Informations professionnelles :
Activité : Architecte

Informations forums :
Inscription : mai 2002
Messages : 1 057
Points : 745
Points : 745
Es-tu allé voir du côté de l'évènement SelectionChange ?

Pour ce qui est de ton code, comme répété très fréquemment sur ce forum, évites d'utiliser des select. Cela n'est pas très élégant en programmation, cela provoque des clignotements désagréables de l'affichage et cela ralentit l'exécution.
De même, il est plus polyvalent d'utiliser les numéros de colonnes plutôt que leur lettre.

A bientôt si nécessaire
defluc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h22.


 
 
 
 
Partenaires

Hébergement Web