Macro VBA copier-coller tableaux help !
Dernière réponse : dans Programmation
Bonjour
Je dois copier une douzaines de tableaux ayant les mêmes étiquettes de colonnes sur une feuille 1. Je souhaite vous soumettre ma macro qui ne marche pas. Soyez indulgents je débute.
Merci d'avance pour vos précieux conseils !
Je dois copier une douzaines de tableaux ayant les mêmes étiquettes de colonnes sur une feuille 1. Je souhaite vous soumettre ma macro qui ne marche pas. Soyez indulgents je débute.
Merci d'avance pour vos précieux conseils !
Autres pages sur : macro vba copier coller tableaux help
Lassé par la pub ? Créez un compte
Meilleure solution
Salut,
C'est pas mal tout ça.
Bon, tout d'abord, renseigne-toi sur la directive Option Explicit. C'est indispensable.
Ensuite, renseigne-toi sur ce qu'est l'indentation. Lire ton code pique les yeux, ma chère.
La collection de tous les onglets d'un classeur Excel , c'est Sheets que tu utilises. Mais ce classeur peut contenir plusieurs types d'onglets : feuille de calcul (Worksheet), graphique (Charts), macro XL4, boîte de dialogues, etc... A lire ton code, je t'exhorte à utiliser la collection Worksheets.
Après avoir placer Option Explicit et corriger ton code, je t'invite à reposer ta question.
C'est pas mal tout ça.
Bon, tout d'abord, renseigne-toi sur la directive Option Explicit. C'est indispensable.
Ensuite, renseigne-toi sur ce qu'est l'indentation. Lire ton code pique les yeux, ma chère.
La collection de tous les onglets d'un classeur Excel , c'est Sheets que tu utilises. Mais ce classeur peut contenir plusieurs types d'onglets : feuille de calcul (Worksheet), graphique (Charts), macro XL4, boîte de dialogues, etc... A lire ton code, je t'exhorte à utiliser la collection Worksheets.
Moui... J'aurais tendance à écrire
Range("A:A")
Columns("A") Columns(1)
Après avoir placer Option Explicit et corriger ton code, je t'invite à reposer ta question.
Sub Macro1()
'Voici ma macro qui:
'efface les données de la feuille 1 (qui est celle de la feuille
'récapitulative)
'copie la ligne 1 (qui est la ligne d'entêtes de colonnes) de la feuille 2 sur la feuille 1
'copie la plage des données des feuilles 2 au nombre total de feuilles du classeur sur la première feuille
'la plage copiée commence à partir de la ligne 2 jusqu'à la dernière ligne contenant des données (colonnes A à H ).
Dim Feuil1 As Worksheet
Dim l As Long
Dim f As Integer
Dim Plage As Range
Dim Lignes As Long
Sheets("Feuil1").Cells.Clear
Sheets("Environnement interne").Range("A1:H1").Copy _
Destination:=Sheets("Feuil1").Range("A1")
l = 2
For f = 2 To Sheets.Count
If Application.CountA(Sheets(f).Range("A2"). _
CurrentRegion) <> 0 Then
With Sheets(h)
Lignes = .Range("A:A").Find("*", , , , , xlPrevious).Row
Set Plage = .Range(.Cells(2, "A"), .Cells(Lignes, "H"))
End With
Plage.Copy Destination:=Sheets("Feuil1").Cells(l, "A")
l = Sheet("Feuil1").Range("A:A").Find("*", , , , , xlPrevious).Row + 1
End If
Next f
End Sub
Option Explicit
Sub Macro1()
'Voici une macro qui:
'efface les données de la feuille 1 (qui est la feuille récapitulative)
'copie la ligne 1 (qui est la ligne d'entêtes de colonnes) de la feuille 2 sur la feuille 1
'copie la plage des données des feuilles 2 au nombre total de feuilles du classeur sur la première feuille
'la plage copiée commence à partir de la ligne 2 jusqu'à la dernière ligne contenant des données (colonnes A à H ).
Dim l As Long
Dim f As Integer
Dim Plage As Range
Dim Lignes As Long
Dim Feuil1 As Worksheet
Worksheets("Feuil1").Cells.Clear
Worksheets("Environnement interne").Range("A1:H1").Copy _
Destination:=Worksheets("Feuil1").Range("A1")
l = 2
For f = 2 To Sheets.Count
If Application.CountA(Worksheets(f).Range("A2").CurrentRegion) <> 0 Then
With Worksheets(f)
Lignes = .Columns("A").Find("*", , , , , xlPrevious).Row
Set Plage = .Range(.Cells(2, "A"), .Cells(Lignes, "H"))
End With
Plage.Copy Destination:=Worksheets("Feuil1").Cells(l, "A")
l = Worksheets("Feuil1").Columns("A").Find("*", , , , , xlPrevious).Row + 1
End If
Next f
End Sub
Mon code marche merci beaucoup zeb! je vais faire d'option Explicit UN IMPÉRATIF. Je ne sais pas si c'est mieux du coté de l'indentation mais j'espère que tes yeux piquent moins. Encore Merci pour le worksheets a la place de sheets ; j'apprends tous les jours!
Euh, les points je n'en fous un peu. Je suis au taquet ! T'as pas vu le rond jaune à côté de mon avatar ?
Je suis responsable de la bonne tenue de ce coin de forum, alors il faut une meilleure réponse à ce topic pour le marquer [Résolu]
Mais tout le monde est gentil, ici ! ![[:spamafote] [:spamafote]]()
Les grossiers et les méchants, je les botte hors d'ici
Je suis responsable de la bonne tenue de ce coin de forum, alors il faut une meilleure réponse à ce topic pour le marquer [Résolu]
Citation :
elle est gentille cette "dina"![[:spamafote] [:spamafote]](http://m.bestofmedia.com/sfp/design/usr/fr/smilies/3e/46/spamafote.gif)
Les grossiers et les méchants, je les botte hors d'ici
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :
- ForumVba copier coller ligne
- ForumVba copier coller format
- ForumVba copier coller ciblã
- ForumExcel vba copier coller
- articlesVba copier coller sã lection
- ForumCode vba copier coller
- ForumVba copier coller valeur
- ForumMacro vba copier feuille
- ForumVba copier coller valeurs sauf certaines valeurs
- ForumExcel vba copier coller plage
- Voir plus
lol