voilà je connais bien VB par contre je n’ai jamais fait de macro excel…
donc pas bcp de connaissance!!
je souhaiterait copier une colone de la feuille 2 pour l’insérer dans la colone de la feuille 1, bien sur à la suite pour ne pas écraser ce qui y a déjà!!
voilà, en théorie ca n’a pas l’air très compliquer, mais il me manque des notions!!
Je vais tout de même essayé de te répondre bien que je sois débutant en la matière…
Voici un petit exemple qui te permet de copier les valeurs de la colonne B de la feuil2 sur la colonne A de la feuil1
Sub Copie_colonne()
Sheets("Feuil2").Select
Columns("B:B").Select
Range("B1").Activate
Selection.Copy
Sheets("Feuil1").Select
Columns("A:A").Select
ActiveSheet.Paste
End Sub
Essaie de comprendre mon explication par rapport aux programmes que tu dois insérer dans un nouveau module dans VBA.
Sinon ce que tu peux faire également, lorsque tu es sous excel : tu cliques sous outils, puis sous macro et enfin, nouvelle macro, tu lui inscrit un nom et tu cliques sur OK. Tu fais ce que tu veux avec tes colonnes et quand tu as fini tu cliques sur Stop (le carré, ceci te permet d’enregistrer sous VBA ce que tu as fait sous excel) => ça m’a beaucoup aidé…
Si tu ne comprends pas qqch dans mon explication re-post seulement !
en fait je sais créer une macro, et j’avais trouver un code cet nuit qui me permet de faire copier - coller, comme ce que tu viens de me faire parvenir!!!!
mon soucis, c qu’il faut que j’insère les cellules à la suite de la cellule vide, car avec ta manière je vais écraser ce qu’il ya dans la colonne…
je te mets le code que j’ai trouvé et qui permet de trouver la derniere cellule vide d’une colonne, mais ca marche pas :
et bien g un bon niveau en vb, ce qui me manquait c’était les commandes sous excel que je ne connais pas du tout!!!
mais g trouvait, en fait g fait une boucle qui recherche la derniere cellule vide de ma colonne et je copie à partir de cette cellule et ca marche bien!!!
Essais ça, je pense que ça devrait répondre à ton besoin
Cette source est faite à partir de Excel 2000
Sub Macro2()
'
' Macro2 Macro
' Macro enregistrée le 09/08/2005 par Nicolas TREILLON
'
'
Sheets("Feuil1").Select
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Feuil2").Select
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
End Sub
Bon moi qui est essayé de répondre, je remarque que je suis encore très mauvais en VBA …
PS : l’entreprise ou je bosse, m’a donné un truc à faire sous VBA, répondez si vous le pouvez, sous la rubrique “utilisation de graphique sous VB”
Merci d’avance
Si tu veux commencer à apprendre le VBA Excel, tu peux faire des essais en enregistrant les macro automatiquement et apres tu affiches la macro générée et tu essais de comprendre le code.
En fait, sous Excel, tu as les même principes : Objet/Propriété/Méthode, les même commandes, bref, seuls les noms d’objets (et bien sûr propriétés/méthodes) changent…
Si tu veux faire des boucles etc… Il y a une chose très importante, sous Excel : Récupérer les référence N° de ligne/colonne de la dernière cellule…
Outre les objets :
WorkBooks (classeurs) Sheets(feuilles) et Cells(cellules) dont tu dois apprendre les propriétés et méthodes, la déclarations des variables que tu dois connaître, une des choses les plus importante est cette référence aux N° de ligne/colonne de la dernière cellule !
Tu déclares des variables globales (moi, dans mes applis, je nomme : DerLne et DerCol) pour récupérer ça, dans un module "Variables"
Ex :
Public DerLne As Long
'les lignes d’une feuille vont jusqu’à 65536, un Integer n’est donc pas suffisant
Public DerCol As Integer
'Une feuille a 256 colonnes, et pour eviter de faire -1 sur un Byte (la colonne 0 'n’existe pas), tu prends de l’Integer…
Ca te servira pour toutes tes applis…
Sinon, dans ton module "Procédures" :
Sub CopieCellules()
'Déclaration des variables :
'L, LD et LO sont pour les boucles (LOrigine LDestination)
'Origine est la feuille d’où tu prends les infos
'Destination est la feuille où tu vas écrire
'LaLne est pour la dernière ligne de l’origine
Dim LD, LO, Origine, Destination, LaLne
Set Origine=Sheets("Feuil2")
Set Destination=Sheets("Feuil1")
Sheets(Origine).Select
'Tu rends active la feuille Origine (pas par .Activate !)
LO=ActiveCell.SpecialCells(xlCellTypeLastCell).Row
'Tu met dans LO le N° de ligne de la dernière ligne de la feuille en cours
Sheets(Destination).Select
'Tu vas sur la feuille Destination
LD=ActiveCell.SpecialCells(xlCellTypeLastCell).Row
'Tu met dans LD le N° de la dernière ligne
LD=LD+1
'Tu rajoutes 1 pour pointer sur la ligne suivante…
'Et tu commence ta boucle :
For L= 1 to LO
'De la ligne 1 jusqu’à la ligne LO (de la feuille Origine)
Sheets(Destination).Cells(LD,1).Value=Sheets(Origine).Cells(L,1).Value
'On prend le contenu de la cellule ligne L, colonne 1 de Origine (.VALUE)
'Que l’on met dans la cellule ligne LD, colonne 1 de Destination
LD=LD+1
Next