[Excel | VBA] Copié contenu d'une cellule d'une feuille eet stocker dans une aut [Résolu]

Signaler
Messages postés
80
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
30 juillet 2008
-
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
-
Bonjour,

Je travail actuellement sur un document excel, celui-ci est constitué de 2 feuille ( nous les appelerons respectivement : feuille1 et feuille2 )

Dans feuille1, qui ressemble fortement à un formulaire, se trouve plusieurs cellules à remplir.
( par exemple : nom , prénom , profession ... )

Dans feuille2 se trouvent sur les colonnes ( No , Nom , Prénom , Profession , etc ...)

Je souhaiterais créer une macro qui lorsqu'elle est activée, copie les informations de feuille1 vers les champs correspondant sur feuille2.
Feuille2 aurait alors la même fonction qu'une BDD

De plus , il faudrait que lorsque l'on execute la macro une fois, il fasse les ajouts dans feuille2, mais lorsque l'on fait la macro une 2eme fois, il passe une ligne et insert les données dans feuille2, mais sans remplacer les données précédements inscrites.

Je ne vois pas trop comment faire , je suis un peu perdu, et je n'ai rien trouvé sur internet me donnant une piste vers laquelle me diriger.

C'est pourquoi , je me tourne vers vous, en espérant que quelqu'un aura la gentillesse de m'aiguiller

Cordialement,

AiDuK

10 réponses

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
ok
à tout hasard, remplace
ProchaineLigneVide = .Range("A1").End(xlDown).Row + 1

par

ProchaineLigneVide = .Range("A65536").End(xlUP).Row + 1

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut,

ça dépends de la disposition des éléments sur la première feuille.
Si c'est disposé comme la feuille2 (les éléments dans la même colonne de chaque page) :

Sheets("Feuille1").Range("A1:G1").Copy  ' exemple au pif, a oi de déterminer les cellules

With Sheets("Feuille2")
    .Range("A" & .Range("A1").End(xlDown).Row + 1).Paste
End With

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
Messages postés
80
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
30 juillet 2008

Merci de la rapidité de la réponse, et de ton aide.

Au niveau de la disposition des deux feuilles, il n'y a aucune ressemblance.
Feuille1 est disposée plutot comme un formulaire, c'est à dire un peu n'importe comment
Alors que feuille2 a plutot la structure d'une BDD avec les en tête de champs sur chaque colonne , à la ligne 1
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Alors va falloir copier chaque valeur une après les autres.

Exemple simple (à adapter) :

Feuille1 :
       A          B          C          D
1     Nom       Prenom      Age     Profession
2  Tartempion   Henry        33     Developpeur
3
4    Ville   Departement
5   Toulon                   Var

Dim ProchaineLigneVide as Integer

With Sheets("Feuille2")
    ProchaineLigneVide = .Range("A1").End(xlDown).Row + 1
    .Range("A" & ProchaineLigneVide).Value = ProchaineLigneVide
    .Range("B" & ProchaineLigneVide).Value = Sheets("Feuille1").Range("A2").Value
    .Range("C" & ProchaineLigneVide).Value = Sheets("Feuille1").Range("B2").Value
    .Range("D" & ProchaineLigneVide).Value = Sheets("Feuille1").Range("C2").Value
    .Range("E" & ProchaineLigneVide).Value = Sheets("Feuille1").Range("D2").Value
    .Range("F" & ProchaineLigneVide).Value = Sheets("Feuille1").Range("A5").Value
    .Range("G" & ProchaineLigneVide).Value = Sheets("Feuille1").Range("B5").Value
End With

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
Messages postés
80
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
30 juillet 2008

Je viens de tester , mais cela me fait une erreur
j'ai crée un bouton de commande, dans lequel j'ai mis ta macro, et préalablement , j'ai recopié les cellules de la feuille1 aux mêmes endroits

Il me dit : "erreur d'execution 6 , Dépassement de capacité"
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Sur quelle ligne as-tu l'erreur ?

En cas, dis nous où se trouvent tes données de la feuille 1, et dans quel ordre sont placés tes colonnes dans la feuille 2.

(ps : tu es avec quelle version d'Excel ?)

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
Messages postés
80
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
30 juillet 2008

Mes données de la feuille1 se trouvent exactement là ou tu les as placées dans ton message précédent, j'ai veillé à bien les mettres au même endroit.

J'utilise Excel 2003

L'erreur se trouve sur ligne en bleu :

Dim ProchaineLigneVide as Integer

With Sheets("Feuille2")
    ProchaineLigneVide = .Range("A1").End(xlDown).Row + 1
    .Range("A" & ProchaineLigneVide).Value = ProchaineLigneVide
    .Range("B" & ProchaineLigneVide).Value = Sheets("Feuille1").Range("A2").Value
    .Range("C" & ProchaineLigneVide).Value = Sheets("Feuille1").Range("B2").Value
    .Range("D" & ProchaineLigneVide).Value = Sheets("Feuille1").Range("C2").Value
    .Range("E" & ProchaineLigneVide).Value = Sheets("Feuille1").Range("D2").Value
    .Range("F" & ProchaineLigneVide).Value = Sheets("Feuille1").Range("A5").Value
    .Range("G" & ProchaineLigneVide).Value = Sheets("Feuille1").Range("B5").Value
End With
Messages postés
80
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
30 juillet 2008

Dans la feuille2, les données sont placées dans cette ordre là ( de A1 à F1 ) :

<colgroup><col style=\"WIDTH: 60pt\" span=\"6\" width=\"80\" /></colgroup>----
Nom, Prenom, Age, Profession, Ville, Département
Messages postés
80
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
30 juillet 2008

T'es le meilleur, tu as de la chance d'être loin de moi, sinon je te prendrais dans mes bras, et on irait prendre une bière  xD

Merci beaucoup à toi de m'avoir consacré du temps et d'avoir résolu mon problème
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
De rien
Bon là c'est moi qui t'ai aidé, mais n'hésite pas en cas de besoin, ce site regorge de membres prêt à aider les autres

Dommage pour la bière, nous la boirons alors en solo chacun de notre côté
@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA