VBA : transfert de données entre feuille
Résolu
VBA
-
VBA -
VBA -
Bonjour,
Je tente actuellement de copier des colonne de la premiere feuille de mon classeur dans une feuille que j'ai créé.
Je renomme la premiere feuille "base" et je créer une feuille "resultat"
Mais je n'arrive pas à chercher les infos dans une feuille te les copier dans l'autre..
Voici mon code :
Dim i As Integer
Dim j As Integer
Dim base As Worksheet
Sub init()
Dim shresultat As Worksheet
ActiveSheet.Name = "base"
Set shresultat = Sheets.Add(After:=Sheets(Sheets.Count))
shresultat.Name = "resultat"
End Sub
Sub remplissage()
j = 1
i = 4
Set base = Worksheet("base")
ActiveSheet.Cells(j, 1).Value = base.Cells(i, 3) = base.Cells(i, 3)
resultat.Cells(j, 3).Value = base.Cells(i, 1)
i = i + 1
End Sub
Je déclare de maniere globale la variable base en tant que worksheet, et je la set dans la partie remplissage. Mais une erreur apparait : sub ou fonction non définis...
Je tente actuellement de copier des colonne de la premiere feuille de mon classeur dans une feuille que j'ai créé.
Je renomme la premiere feuille "base" et je créer une feuille "resultat"
Mais je n'arrive pas à chercher les infos dans une feuille te les copier dans l'autre..
Voici mon code :
Dim i As Integer
Dim j As Integer
Dim base As Worksheet
Sub init()
Dim shresultat As Worksheet
ActiveSheet.Name = "base"
Set shresultat = Sheets.Add(After:=Sheets(Sheets.Count))
shresultat.Name = "resultat"
End Sub
Sub remplissage()
j = 1
i = 4
Set base = Worksheet("base")
ActiveSheet.Cells(j, 1).Value = base.Cells(i, 3) = base.Cells(i, 3)
resultat.Cells(j, 3).Value = base.Cells(i, 1)
i = i + 1
End Sub
Je déclare de maniere globale la variable base en tant que worksheet, et je la set dans la partie remplissage. Mais une erreur apparait : sub ou fonction non définis...
A voir également:
- VBA : transfert de données entre feuille
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA
- Dépassement de capacité vba ✓ - Forum Excel
1 réponse
J'ai réussi à me déboguer.
Voici le résultat pour cux que ca interesserait :
NB : le but est de récupérer des information stockés dans un feuille et les mettres dans les colonne approprié d'une autre feuille. Un remaniement des colonnes et lignes.
Par exemple : Dans ma feuille 1 : Je récupere la cellule de ma 1ere et 3eme colonne (sur la ligne en cours) et je place respectivement les resultat dans la 3eme et 1ere colonne de ma feuille 2 (de ma ligne en cours).
Sub remplissage()
j = 1
i = 3
Nom = Sheets("base").Cells(3, 3)
//Je parcours ma feuille1
Do While Sheets("base").Cells(i, 3) = Nom
//je récupere la cellule de la colonne 3 (feuille1, ligne en cours)et la place dans la colonne 1(feuille2, ligne en cours)
Sheets("resultat").Cells(j, 1) = Sheets("base").Cells(i, 3)
//je récupere la cellule de la colonne 1 (feuille1, ligne en cours)et la place dans la colonne 3(feuille2, ligne en cours)
Sheets("resultat").Cells(j, 3) = Sheets("base").Cells(i, 1)
If j >= 2 Then
Sheets("resultat").Cells(j, 1) = ""
End If
i = i + 1
j = j + 1
Loop
End Sub
Ci dessous un apercu des fichiers avant et apres :
Avant :
1 a
2 a
3 a
Apres :
a 1
2
3
Voici le résultat pour cux que ca interesserait :
NB : le but est de récupérer des information stockés dans un feuille et les mettres dans les colonne approprié d'une autre feuille. Un remaniement des colonnes et lignes.
Par exemple : Dans ma feuille 1 : Je récupere la cellule de ma 1ere et 3eme colonne (sur la ligne en cours) et je place respectivement les resultat dans la 3eme et 1ere colonne de ma feuille 2 (de ma ligne en cours).
Sub remplissage()
j = 1
i = 3
Nom = Sheets("base").Cells(3, 3)
//Je parcours ma feuille1
Do While Sheets("base").Cells(i, 3) = Nom
//je récupere la cellule de la colonne 3 (feuille1, ligne en cours)et la place dans la colonne 1(feuille2, ligne en cours)
Sheets("resultat").Cells(j, 1) = Sheets("base").Cells(i, 3)
//je récupere la cellule de la colonne 1 (feuille1, ligne en cours)et la place dans la colonne 3(feuille2, ligne en cours)
Sheets("resultat").Cells(j, 3) = Sheets("base").Cells(i, 1)
If j >= 2 Then
Sheets("resultat").Cells(j, 1) = ""
End If
i = i + 1
j = j + 1
Loop
End Sub
Ci dessous un apercu des fichiers avant et apres :
Avant :
1 a
2 a
3 a
Apres :
a 1
2
3