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

Résolu
AiDuK Messages postés 80 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 30 juillet 2008 - 16 juin 2008 à 15:49
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 16 juin 2008 à 16:53
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

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
16 juin 2008 à 16:43
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
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
16 juin 2008 à 15:56
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
0
AiDuK Messages postés 80 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 30 juillet 2008
16 juin 2008 à 16:02
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
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
16 juin 2008 à 16:12
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
0

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

Posez votre question
AiDuK Messages postés 80 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 30 juillet 2008
16 juin 2008 à 16:21
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é"
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
16 juin 2008 à 16:28
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
0
AiDuK Messages postés 80 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 30 juillet 2008
16 juin 2008 à 16:32
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
0
AiDuK Messages postés 80 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 30 juillet 2008
16 juin 2008 à 16:35
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
0
AiDuK Messages postés 80 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 30 juillet 2008
16 juin 2008 à 16:49
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
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
16 juin 2008 à 16:53
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
0
Rejoignez-nous