OVH Cloud OVH Cloud

Copie d'une colonne sur plusieurs feuilles :VBA

6 réponses
Avatar
Ricou
Bonjour,

voilà la situation :je possède un fichier à 4 onglets.
Le dernier onglet sert juste à renseigner plus précisément les trois
précédents.
J'aimerais, pour les trois premiers onglets insérer au début les dernières
colonnes du dernier onglet.
Voici la boucle que j'ai ainsi créée.

Sheets("Qui").Select
ColumnCounting = Range("A3").CurrentRegion.Columns.Count
For i = ColumnCounting To 10 Step -1
Sheets(Array("Prix", "Qte", "Rés.")).Select
For Each Sh In ActiveWindow.SelectedSheets
Sh.Activate
Range("A1").Select
Selection.EntireColumn.Insert
Sheets("Qui").Select
Columns(i).Copy
Sh.Activate
Range("A1").Paste
Next
Next

dès que je fais tourner, débogage proposé au niveau de
Range("A1").Paste .
Qu'est-ce qui cloche ?

Merci d'avance !

6 réponses

Avatar
Jo-Soupin
bonjour Ricou,

sh.Activate
Range("A1").Activate
ActiveSheet.Paste



Bonjour,

voilà la situation :je possède un fichier à 4 onglets.
Le dernier onglet sert juste à renseigner plus précisément les trois
précédents.
J'aimerais, pour les trois premiers onglets insérer au début les dern ières
colonnes du dernier onglet.
Voici la boucle que j'ai ainsi créée.

Sheets("Qui").Select
ColumnCounting = Range("A3").CurrentRegion.Columns.Count
For i = ColumnCounting To 10 Step -1
Sheets(Array("Prix", "Qte", "Rés.")).Select
For Each Sh In ActiveWindow.SelectedSheets
Sh.Activate
Range("A1").Select
Selection.EntireColumn.Insert
Sheets("Qui").Select
Columns(i).Copy
Sh.Activate
Range("A1").Paste
Next
Next

dès que je fais tourner, débogage proposé au niveau de
Range("A1").Paste .
Qu'est-ce qui cloche ?

Merci d'avance !


Avatar
AV
Essaye ça :

Sub test()
Sheets("Qui").Select
For i = [Qui!A3].CurrentRegion.Columns.Count To 10 Step -1
For j = 1 To 3
With Sheets(Array("Prix", "Qte", "Rés.")(j - 1))
.[A1].EntireColumn.Insert
Sheets("Qui").Range(Cells(1, i), Cells(65536, i)).Copy (.[A:A])
End With
Next j
Next i
End Sub

AV
Avatar
Youky
Columns(i).Copy
Range("A1").Select
ActiveSheet.Paste
Next
Next

Plus de plantage
Youky
"Ricou" a écrit dans le message de news:

Bonjour,

voilà la situation :je possède un fichier à 4 onglets.
Le dernier onglet sert juste à renseigner plus précisément les trois
précédents.
J'aimerais, pour les trois premiers onglets insérer au début les dernières
colonnes du dernier onglet.
Voici la boucle que j'ai ainsi créée.

Sheets("Qui").Select
ColumnCounting = Range("A3").CurrentRegion.Columns.Count
For i = ColumnCounting To 10 Step -1
Sheets(Array("Prix", "Qte", "Rés.")).Select
For Each Sh In ActiveWindow.SelectedSheets
Sh.Activate
Range("A1").Select
Selection.EntireColumn.Insert
Sheets("Qui").Select
Columns(i).Copy
Sh.Activate
Range("A1").Paste
Next
Next

dès que je fais tourner, débogage proposé au niveau de
Range("A1").Paste .
Qu'est-ce qui cloche ?

Merci d'avance !


Avatar
Ricou
Merci à tous les trois, vos solutions me permettent toutes de débloquer ma
macro.
J'ai toutefois retenu la solution de AV qui allège pas mal la macro.
En revanche, je ne sais pas trop comment fonctionne
application.screenupdating.
En effet, quand la macro tourne, les feuilles Excel s'agitent à l'écran...
Vous pourriez m'expliquer comment ca fonctionne et où placer un true ou un
false dans ma macro SVP?

Merci encore!
Avatar
ClémentMarcotte
Bonjour,

En revanche, je ne sais pas trop comment fonctionne
application.screenupdating.


Quand, il est à False, cela empêche, en principe, de raffraîchir l'écran; et
cela accélère le déroulement de la macro. Mais, j'ai déjà vécu des
situations où cela semblait plus être une parure qu'autre chose.

Habituellement on le met dans les premières lignes, mais ce qui importe le
plus c'est que ce soit avant le premier passage qui demande des
rafraîchissements de l'écran.

Quand il est à true, cela permet de rafraîchir l'écran au fur et à mesure de
l'exécution de la macro. La plupart du temps, il se remet à true
automatiquement à la fin de la macro. Tu peux aussi le remettre à true
n'importe où dans la macro, dès que tu as besoin d'annuler le false.

Avatar
Ricou
Merci Clément


Merci à tous les trois, vos solutions me permettent toutes de débloquer ma
macro.
J'ai toutefois retenu la solution de AV qui allège pas mal la macro.
En revanche, je ne sais pas trop comment fonctionne
application.screenupdating.
En effet, quand la macro tourne, les feuilles Excel s'agitent à l'écran...
Vous pourriez m'expliquer comment ca fonctionne et où placer un true ou un
false dans ma macro SVP?

Merci encore!