VBA- charger les données

Bonjour à tous les membres de ce forum,

Je suis un débutant en VBA, j'aimerais vous solliciter grâce à vos explications afin de réaliser une programmation.

Je veux créer un fichier excel sur lequel si je renseigne toutes les données (que j'ai défini moi même) sur une feuille, à la fin lorsque que je clique sur un bouton que ca puisse alimenter une autre feuille du même fichier.

En claire, sur une feuille A ( à deux colonnes), je renseigne les informations suivantes :

Semestre (1)

Réalisateur(X)

N° de référence (000000)

Taux de cotisation (OK)

Archivage (OK)

Ouverture(OK).

Une fois terminé, je clic sur un seul bouton pour alimenter une autre feuille B dans le même fichier à l'aide d'un macro. Ceci pour chaque Réalisateur que j'aurai effectué.

Je ne sais pas si je me suis fait comprendre?

En ce qui concerne l'insertion des boutons associés aux macros, je suis capable de le faire.

Je vous en remercie d'avance.

Bonjour ,

j'ai compris la 1er partie mais en ce qui concerne l'alimentation des donnée, tout dépend de la feuille d'arriver

ou juste un exemple ou extrait bidon

Merci Minanse de ta réponse,

en guise d'exemple je joint un fichier simple où la feuille B est sans formules, chose que j'aimerais insérer après avoir maîtriser le plus simple. merci beaucoup.

30vba.xlsx (8.68 Ko)

voila un petit test j'attend votre retour (elle fonction pour moi qui a qu'une ligne en exemple ^^)

Sub test()
  Dim lastCol As Integer
  lastCol = Range("IV2").End(xlToLeft).Column 'attention le "IV2" est à adapter en fonction des besoin
  lastLig = Sheets("B").Range("A" & Rows.Count).End(xlUp).Row
  For i = 2 To lastCol
    Sheets("B").Cells(lastLig + 1, 1) = Cells(2, i)
    Sheets("B").Cells(lastLig + 1, 2) = Cells(3, i)
    Sheets("B").Cells(lastLig + 1, 3) = Cells(4, i)
    Sheets("B").Cells(lastLig + 1, 4) = Cells(5, i)
    Sheets("B").Cells(lastLig + 1, 5) = Cells(6, i)
    Sheets("B").Cells(lastLig + 1, 6) = Cells(7, i)
    Sheets("B").Cells(lastLig + 1, 7) = Cells(8, i)
    Sheets("B").Cells(lastLig + 1, 8) = Cells(9, i)
    Sheets("B").Cells(lastLig + 1, 9) = Cells(10, i)
  Next i

End Sub

mettre cette ligne avant le "dim" si vous avais vraiment beaucoup de ligne

  Application.ScreenUpdating = False  

Merci de votre réponse.

C'est vraiment sympa de votre part.

J'aimerais savoir s'il faut que je saisisse tous les codes que vous m'avez envoyé ou il suffit de sélectionner les données?

Desolé du dérangement, je ne suis pas vraiment calé en macro!

vba 2

si le fichier original à le même format que celui que vous avez fourni (avec un peu plus de colonne sur le fichier "A") alors il suffit de coller TOUT le code dans le code du bouton =)

Merci bien.

J'ai essayé mais un peu compliqué.

Je vais lire certains tutoriels pour voir si je vais comprendre mieux afin de réessayer avec votre méthode.

Encore merci, c'est sympa.

si vous voulez je peut commenté le code pour facilité la compréhention

Je veux bien les commentaires minanse.

merci.

voila avec un petit exemple

va dans affichage/macro/Affichier macro/ modifier

il faut exécuté la macro sur la feuille "A"


un bug avec le fichier du coup pas le choix ^^

Sub test()
  Dim lastCol As Integer
  lastCol = Range("IV2").End(xlToLeft).Column 'attention le "IV2" est à adapter en fonction des besoin, cette ligne permet de trouver la dernière colonne remplie dans la feuille "A"
 lastLig = Sheets("B").Range("A" & Rows.Count).End(xlUp).Row 'trouver la dernière ligne remplie dans la feuille "B" (pour mettre les donnée sur la suivante et non les écraser
  For i = 2 To lastCol 'on parcours tous les colonne (donc tous les réalisateur)
    Sheets("B").Cells(lastLig + 1, 1) = Cells(2, i) 'la 1er case vide sur la colonne "A" de la feuille "B" = au 1er ligne non vide de la colonne "B" sur la feuille "A"
    Sheets("B").Cells(lastLig + 1, 2) = Cells(3, i) ' pareil qu'en haut avec la 2eme case vide et ainsi de suite sur les 9 ligne de la colonne "B"
    Sheets("B").Cells(lastLig + 1, 3) = Cells(4, i)
    Sheets("B").Cells(lastLig + 1, 4) = Cells(5, i)
    Sheets("B").Cells(lastLig + 1, 5) = Cells(6, i)
    Sheets("B").Cells(lastLig + 1, 6) = Cells(7, i)
    Sheets("B").Cells(lastLig + 1, 7) = Cells(8, i)
    Sheets("B").Cells(lastLig + 1, 8) = Cells(9, i)
    Sheets("B").Cells(lastLig + 1, 9) = Cells(10, i)
  Next i ' on passe au colonne suivant pour faire la meme chose
  'c'est repartie pour un tour si la colonne n'est pas vide
End Sub
19vba.xlsx (8.42 Ko)

merci bien.

Je reviendrai vers vous dès que possible.

Bonne soirée.

Rechercher des sujets similaires à "vba charger donnees"