Copier des cellules avec sous excel en VBA

Nargzul Messages postés 438 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 26 juillet 2007 - 27 sept. 2005 à 13:10
cs_pcvesoul Messages postés 123 Date d'inscription vendredi 21 janvier 2005 Statut Membre Dernière intervention 25 juillet 2007 - 27 sept. 2005 à 15:41
VOila, moi j'ai enregistré une macro, puis j'ai copié le code:



Range("A1:F1").Select

selection.Copy

Sheets(valu).Select

ActiveSheet.Paste

Sheets(base).Select

Application.CutCopyMode = False





et quand j'éxécute la macro pas de problème, mais quand par contre
j'éxécute mon ti bouton, la ca bloque... sur le selection.copy, ou ca
me dit que "qualificateur incorrect"

12 réponses

cs_pcvesoul Messages postés 123 Date d'inscription vendredi 21 janvier 2005 Statut Membre Dernière intervention 25 juillet 2007 1
27 sept. 2005 à 15:26
Il est important pour tout acces dans une feuille Excel, ceci afin de passer sur toutes les versions, de bien se positionner dans la feuille, la cellule et d'utiliser le bloc :

With AppExcel.???
.???
End With

Sinon, ca marchera 1 fois, 2 fois mais peut etre pas 10. J'ai assez galérer la dessus pour m'y soumettre maintenant.

Si ca vous interrese, voici un exemple pas trop mal e génération de fichier excel :

http://www.vbfrance.com/code.aspx?ID=33981
1
cs_pcvesoul Messages postés 123 Date d'inscription vendredi 21 janvier 2005 Statut Membre Dernière intervention 25 juillet 2007 1
27 sept. 2005 à 13:35
Avant toute action, il faut d'abord te positionner dans ta cellule :

AppExcel.Worksheets(Pag_Excel).Select
AppExcel.Cells(Lig_Excel, Col_Excel).Select ' Plus pratique que le Range car pas besoin de calculer la colonne.

Ensuite, préférer ceci :

With AppExcel.Selection
.??? (ce que tu veux)
End With

ou ceci (selon les besoins) :

AppExcel.Worksheets(Pag_Excel).Cells(Lig_Excel, Col_Excel).Value = Txt
0
Nargzul Messages postés 438 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 26 juillet 2007 4
27 sept. 2005 à 13:39
c'est bien joli, mais avec ton bout de code, je fais comment pour délimiter si il y a qu'une colonne et qu'une ligne???



surtout que comme tu l'as dis, il a déjà le Range qui sélectionne, non?
0
cs_pcvesoul Messages postés 123 Date d'inscription vendredi 21 janvier 2005 Statut Membre Dernière intervention 25 juillet 2007 1
27 sept. 2005 à 13:44
Et bien utilise le Range...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Nargzul Messages postés 438 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 26 juillet 2007 4
27 sept. 2005 à 13:49
très constructif...



Si t'arrive à me dire comment faire pour ne pas copier toute une ligne,
pourquoi pas, mais la je peux pas faire avec ca apparement...
0
cs_pcvesoul Messages postés 123 Date d'inscription vendredi 21 janvier 2005 Statut Membre Dernière intervention 25 juillet 2007 1
27 sept. 2005 à 14:04
Que souhaites-tu faire exactement ? copier une cellule, une ligne, une plage ?

Tu peux tres bien traiter ta plage sous la forme :

for Lig_Excel=x to y
for Col_Excel= a to b
et tu copies le contenu...

Maintenant faut savoir exactement ce que tu veux : quand a copier une ligne complete, sous VB connais pas.

P.S. Sois moins agresssif quand meme
0
cs_pcvesoul Messages postés 123 Date d'inscription vendredi 21 janvier 2005 Statut Membre Dernière intervention 25 juillet 2007 1
27 sept. 2005 à 14:04
Que souhaites-tu faire exactement ? copier une cellule, une ligne, une plage ?

Tu peux tres bien traiter ta plage sous la forme :

for Lig_Excel=x to y
for Col_Excel= a to b
et tu copies le contenu...

Maintenant faut savoir exactement ce que tu veux : quand a copier une ligne complete, sous VB connais pas.

P.S. Sois moins agresssif quand meme
0
Nargzul Messages postés 438 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 26 juillet 2007 4
27 sept. 2005 à 14:41
excuse, c'était vraiment pas mon intention, c'est juste que ca fait
bien 20minutes que je tourne la dessus, et que je comprend pas, mais
alors pas, que si une macro le fait, que je copie le texte de cette
macro et que je la copie dans une fonction cela ne marche pas.



pour ta solution avec les for j'y avais pensé, mais a mon avis ca
engendre quand meme bien trop de perte de temps processeur de switcher
d'une feuille a l'autre une dizaine de fois au lieu d'une seule,
surtout que cette opération risque de s'effectuer bien des
fois....
0
cs_pcvesoul Messages postés 123 Date d'inscription vendredi 21 janvier 2005 Statut Membre Dernière intervention 25 juillet 2007 1
27 sept. 2005 à 15:01
Pas grave. Mois aussi je rame depuis ce matin pour trouver du code permettant d'ajouter un champ dans une table Excel sous VB6 (je me suis meme fait jeter de Developper.Com car je n'avais pas compris la réponse).

Bref, essaie ceci :

AppExcel.Range("A1:B2").Select

With AppExcel.Selection
.Copy
End With

AppExcel.Range("A4").Select

ActiveSheet.Paste
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
27 sept. 2005 à 15:09
Bonjour,

Si c'est sur ta feuil1 que tu places ton bouton, tu choisis Barre
d'outils/ Formulaire, dès que tu vas le bouton placer sur la feuillle,
le prg va demander d'affecter une macro. Tu sélectionnes Copie.



Sub Copie()

Range("A1:F1").Select

Selection.Copy

Sheets("valu").Select

Range("A1:F1").Select

ActiveSheet.Paste

Sheets("base").Select

Application.CutCopyMode = False

End Sub



jpleroisse



Si une réponse vous convient, cliquez Réponse Acceptée.
0
Nargzul Messages postés 438 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 26 juillet 2007 4
27 sept. 2005 à 15:36
pcvesoul--> je vais essayer ca, mais je suis sceptique

jpleroisse--> il me demande rien moi
0
cs_pcvesoul Messages postés 123 Date d'inscription vendredi 21 janvier 2005 Statut Membre Dernière intervention 25 juillet 2007 1
27 sept. 2005 à 15:41
Ne sois pas sceptique : j'ai galérer et peut te dire que nmon code fonctionne.

Si la source est trop volumineuse, demande umoi un exemple concret, je te la fournirai.

Bon courage.
0
Rejoignez-nous