Copier des cellules avec sous excel en VBA

Messages postés
438
Date d'inscription
vendredi 9 mai 2003
Statut
Membre
Dernière intervention
26 juillet 2007
- - Dernière réponse : 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"
Afficher la suite 

12 réponses

Meilleure réponse
Messages postés
123
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
25 juillet 2007
1
1
Merci
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

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 189 internautes nous ont dit merci ce mois-ci

Messages postés
123
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
25 juillet 2007
1
0
Merci
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
Messages postés
438
Date d'inscription
vendredi 9 mai 2003
Statut
Membre
Dernière intervention
26 juillet 2007
3
0
Merci
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?
Messages postés
123
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
25 juillet 2007
1
0
Merci
Et bien utilise le Range...
Messages postés
438
Date d'inscription
vendredi 9 mai 2003
Statut
Membre
Dernière intervention
26 juillet 2007
3
0
Merci
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...
Messages postés
123
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
25 juillet 2007
1
0
Merci
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
Messages postés
123
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
25 juillet 2007
1
0
Merci
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
Messages postés
438
Date d'inscription
vendredi 9 mai 2003
Statut
Membre
Dernière intervention
26 juillet 2007
3
0
Merci
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....
Messages postés
123
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
25 juillet 2007
1
0
Merci
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
Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
22
0
Merci
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.
Messages postés
438
Date d'inscription
vendredi 9 mai 2003
Statut
Membre
Dernière intervention
26 juillet 2007
3
0
Merci
pcvesoul--> je vais essayer ca, mais je suis sceptique

jpleroisse--> il me demande rien moi
Messages postés
123
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
25 juillet 2007
1
0
Merci
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.