Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Autres Problème VBA sur Excel 2007

  • Initiateur de la discussion Initiateur de la discussion Co_Lac
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Co_Lac

XLDnaute Junior
Bonjour,
Mon problème est de conserver la mise en forme de cellules de reception en VBA, je vous explique:
Je récupère sur Yahoo Finance des infos style "Données historiques" que j'utilise sur excel 2007.
Cette opération se passe très bien mais je bute sur un détail dans Excel et principalement sur cette commande:

Sheets("Donnees bourse").Range("Q7").Copy Sheets("Base").Cells(25, index)
---->Sheets("Donnees bourse").Range("G4:G27").Copy Sheets("Base").Cells(90, index)
Sheets("Donnees bourse").Range("F4:F27").Copy Sheets("Base").Cells(1, index)
Sheets("Donnees bourse").Range("A4:A27").Copy Sheets("Base").Cells(1, 1)

Sur cette ligne en gras:
Le but c'est de copier les valeurs des cellules "G4:G27" sur la feuille "Base" à une endroit défini par "Cells(90, index)"
Mais le problème c'est que je veux conserver la mise en forme des cellules de réception et je ne trouve rien sur google pour m'aider.
Avez vous des idées svp ?
Merci
Claude
 
Bonjour Co_Lac,
Pour cela il ne faut coller que les valeurs, vous conserverez ainsi votre format d'origine.
Essayez de remplacer votre ligne en gras par :
VB:
    Sheets("Donnees bourse").Range("G4:G27").Copy
    Sheets("Base").Cells(90, Index).PasteSpecial Paste:=xlPasteValues, _
    Operation:=xlNone, SkipBlanks:=False, Transpose:=False
 
bonjour il faudra m'expliquer pourquoi utiliser "Paste"et toute son armada si c'est pour ne récupérer le .value

VB:
Sheets("Base").Cells(90, Index).resize(,[G4:g27].columns.count).value= Sheets("Donnees bourse").Range("G4:G27").value
épicétoo'
😉
 
Merci beaucoup,
Effectivement ça marche plus vite !
J'aime bien cette dernière version, le paste et son armada alourdi la macro, j'ai 25 colonne à réactualiser!
Bonne fin de journée
Et merci pour votre aide
 
J'ai une autre question svp
Mon fichier est de plus en plus long au niveau sauvegarde ?
Je me pose des questions!
D’où est ce que ça pourrait venir ?
Il fait 251 ko
Est ce normal ?
 
Bonjour le fil, Co_Lac, sylvanu, patricktoulon

•>patricktoulon
Si je n'abuse que ce soit en Bretagne ou à Valparaiso.
Que l'on soit confiné ou pas
[G4:g27].columns.count
donnera toujours 1
Alors pourquoi ne pas mettre 1
?
NB [Xi:Xj].Columns.Count donne toujours 1 quand X=X non ?
 
bonjour Staple1600
oui c'est vrai en fait logiquement c'est le row que l'on devrait resizer
resize([g4:g27].rows.count,1)
normalement mais il en est satisfait j'en conclu que tout ce ramdam c'est pour copier une seule cellule
 
non non plusieurs cellules !
Mais ça marche!
une autre question comment fait on pour transférer toutes les données dans un fichier vierge?
question pour vous basique mais j'ai peur de faire des bétises!
Merci
 
Bonjour,
J'ai encore une autre question svp !
Je veux faire un rangement sur une ligne avec en "A123" par exemple le ou les premiers des participants , (dans ce cas incrémenter les cellules, "B123", "C123" etc.... ) ensuite le ou les deuxièmes "D123", "E123", troisième etc....
Sur une ligne, comme dans mon exemple "A121:Z121" j'ai une série de valeurs qui sont des notes numériques.
La ligne au dessus, "A120:Z120" j'ai le nom des participants.
Le but de ma question c'est en VBA, rechercher l'adresse de la cellule qui correspond à par exemple la note de 45?
Réponse par exemple: "L121"
J'ai cherché sur google mais rien ne correspond ou ne marche pas, donc je frappe à votre porte !
Merci
Claude
 
bonjour Staple1600
oui c'est vrai en fait logiquement c'est le row que l'on devrait resizer
resize([g4:g27].rows.count,1)
normalement mais il en est satisfait j'en conclu que tout ce ramdam c'est pour copier une seule cellule
Bonjour,
Je viens de m'apercevoir, en apportant vos modifications; "resize([g4:g27].rows.count,1)" à la ligne de patricktoulon; "Sheets("Base").Cells(90, Index).resize(,[G4:g27].columns.count).value= Sheets("Donnees bourse").Range("G4:G27").value" ça ne marche pas, ça plante!
j'ai écris:
"Sheets("Base").Cells(90, Index).resize(,[G4:g27].rows.count,1).value= Sheets("Donnees bourse").Range("G4:G27").value"
Erreur d’exécution: "450"
Nombre d'argument incorrect ou affectation de propriété incorrecte
J'ai cherché des solutions mais je ne trouve pas !
Je vous remercie de me dire svp
Merci
 
Bonjour,
Je viens de m'apercevoir, en apportant vos modifications; "resize([g4:g27].rows.count,1)" à la ligne de patricktoulon; "Sheets("Base").Cells(90, Index).resize(,[G4:g27].columns.count).value= Sheets("Donnees bourse").Range("G4:G27").value" ça ne marche pas, ça plante!
j'ai écris:
"Sheets("Base").Cells(90, Index).resize(,[G4:g27].rows.count,1).value= Sheets("Donnees bourse").Range("G4:G27").value"
Erreur d’exécution: "450"
Nombre d'argument incorrect ou affectation de propriété incorrecte
J'ai cherché des solutions mais je ne trouve pas !
Je vous remercie de me dire svp
Merci
c'est vrai, le premier qui fait poster a gagné .
j'aurai du supprimer le mien.
dont acte .
ce message s'autodétruira dans 5 secondes ...



J'ai une autre question svp:
Sur ma feuille "Base":
j'ai une ligne de A120 à Z120 = participants (nom de Sociétés)
J'ai une ligne de A121 à Z121 = notes attribuées (suivant critères)
Je veux si c'est possible et pas trop complexe, recopier ces 2 lignes sur une feuille "Classement" en "A1 à Z1" et "A2 à Z2" par exemple en les réordonnant en ordre décroissant.
Comment faire une recherche sur la ligne A121 à Z121 de la note, 50 à 0 et récupérer l'adresse de la cellule ligne au dessus correspondante puis d'une seconde note (identique à la première) si ex aequo il y a et les ranger depuis "A1 à "Z" de la feuille "Classement" en ordre décroissant ?
Et ensuite faire une boucle de la note 50 à 0 par exemple?
J'ai cherché sur google mais rien ne correspond ou ne marche pas, donc je frappe à votre porte !
Excusez moi mais je débute en VBA, c'est trés prenant, ça occupe par les temps qui court!
Merci
Claude
 

Pièces jointes

  • rangement.PNG
    15.8 KB · Affichages: 18
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 colorer une plage
Réponses
2
Affichages
874
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…