Forum Clubic

Probleme macro pour excel (Transfert de ligne dans un tableau)

Bonjour,

Je souhaiterais créer une feuille simple Excel dans laquelle des données sont rentrées.

En appuyant sur un bouton celle-ci serait transférée dans un tableau situé dans une autre feuille.

J’ai pour le moment créé le bouton et quand j’appuis les données sont transférait mais quand je rentre de nouvelle données elles sont remplacées alors que je souhaite qu’elle se mette à la suite du tableau.

Y aurait-il une personne bien attentionnée qui pourrait me donner la macro exacte.

Merci d’avance. :wink:

Si tu donnais d’abord la tienne, on pourrait te dire exactement ce qu’il faut y rajouter

Edit:
Et pendant que tu y es, corrige aussi les fautes d’orthographe
Edité le 07/06/2010 à 21:13

Si j’avais la prétention de ne pas faire de faute j’en aurai pas fait.

Quand tu programmes, tu veilles bien à ne pas faire de faute dans tes lignes, non ?
Doit-on en conclure que les lecteurs de Clubic sont moins dignes d’attention qu’un interpréteur ou un compilateur ?

Quoi qu’il en soit, donne quand même ton code pour qu’on puisse t’aider à résoudre ton problème

Alors voila.

Sub Macro()
Range(“A4:D4”).Select
Selection.Copy
Sheets(“Feuil2”).Select
Range(“A4”).Select
ActiveSheet.Paste
End Sub

j’ai ensuite associé cette macro à mon bouton.

Si je fait des fautes c’est que j’ai du mal à faire autrement.

Merci d’avance.

C’est normal que ça écrase, puisque tu écris toujours en A4 sur la feuille cible.
Ce qu’il faut, c’est trouver la première cellule vide au-dessous de ce qui est déjà rempli.

Sub Macro()
Range(“A4:D4”).Select
Selection.Copy
Sheets(“Feuil2”).Activate
Range(“A100”).end(xlup).offset(1).select
Activesheet.paste
End Sub

Si ton tableau est appelé à dépasser 100 lignes, tu changes A100 par une valeur plus élevée.

Un grand merci à toi cela marche niquel.

De nouveau un problème.

Je modifie le nom de la feuille et puis cela ne fonctionne plus

Voici la ligne

Private Sub CommandButton1_Click()
Range(“A5:E5”).Select
Selection.Copy
Sheets(“Tableau des demandes clients”).Activate
Range(“A100”).End(xlUp).Offset(1).Select
ActiveSheet.Paste
End Sub

Quelqu’un peut-il m’aider svp.

C’est quoi le message d’erreur cette fois-ci ?
Et à quelle ligne ?

Merci pour ta réponse mais j’ai trouvé c’est le faite de mettre la macro dans le bouton qui empêché le fonctionnement.
Je l’ai donc associé et maintenant ca fonctionne.

J’ai un autre problème maintenant je souhaite transférer des lignes d’un tableau à un autre avec une donnée précise dans une case.

Pour être plus précis je souhaite quand il y a marqué Terminé dans une case de la colonne E que les cases à leur droite soit A B C et D se copie dans un autre tableau et que la ligne se supprime.

Je ne trouve pas du tout cette manip peut-tu m’aider.

Tu peux nous le refaire en français ?

Je vais essayer.

J’ai un tableau avec 5 colonnes A, B, C, D, E.

Dans chacune de ces colonne il y a des données sauf dans la colonne E qui elle est un liste déroulant.

Je veux quand je choisi dans l’une des cases de la colonne E le mot Terminé que les cases à droite de celle-ci se copie coller dans un autre tableau dans une autre feuille.

Ensuite la ligne qui comporté les données elle se supprime.

Pour résumé je veux un premier tableau avec des données à faire. Et quand celle-ci sont terminé je choisi donc dans ma liste déroulante le mot terminé ce qui automatiquement copie la ligne dans un tableau récap de demandes terminées.

Et ensuite mon tableau de demande se vide car les lignes sont supprimé automatique.

Merci de ton aide.

Quel intérêt as-tu à copier des cellules vides ?

Je n’ai pas dit quelle serait vide

Tu ne le dis pas explicitement, mais tu dis que ton tableau va de A à E, et que tu veux copier ce qui est à droite de E…
Pour moi, LES cellules à droite, ça veut dire les colonnes F à IV
Edité le 29/06/2010 à 08:25

Ah oui désolé trop de travail je fatigue je voulais dire gauche il va me falloir de la vitamine C bientot.

Tu as plusieurs étapes à réaliser
1- il faut que tu identifies l’ensemble des cellules de la colonne E que tu veux balayer ; plus exactement la première et la dernière
2- ensuite tu balaies l’ensemble de ces cellules avec une boucle FOR ou une boucle WHILE.
Si tu fais avec une boucle FOR, il faut que tu commences par la dernière ligne.
3- Quand tu trouves le mot TERMINE, tu copies les 4 cellules à gauche avec la méthode développée en début de post
4- tu te déplaces sur la ligne suivante
5- tu effaces la ligne que tu viens de quitter.

Si tu bloques sur un des points, tu dis lequel

Alors pour tout te dire j’apprends les macro la et donc je ne comprend pas boucle FOR et boucle WHILE.

Les aides en ligne, c’est fait pour ça
En premier, tu vas dans excel/Visual Basic, et tu cliques sur F1 pour avoir l’aide.
Après tu as plusieurs manières de procécer :

  • directement dans index ou aide intuitive, tu regardes ce qui concerne FOR, DO …LOOP etc
  • dans l’onglet sommaire, tu vas dans le manuel de référence > Index/Listes > Résumé des mots clés de flux de contrôle

Tu peux aussi te servir des exemples en ligne : dans Google, tu tapes VBA Boucles et tu suis les exemples qui te sont donnés.

Merci je vais voir ce soir ou demain.