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

XL 2010 Copier/Transposer plage vers Fichier fermé

cp4

XLDnaute Barbatruc
Bonjour,

Suite à une discussion (lien dans le fichier principal). J'ai voulu refaire la même mais sans ouvrir le fichier destination.
Donc c'est une première pour moi. J'ai trouvé un tuto sur developpez.com dans lequel un code est proposé pour les fichiers en xlsm et xlsx.
Jusque là, c'est bon. Il y aussi un exemple de requête SQL (que je ne connais pas du tout) pour récupérer les données d'une feuille.
Or, dans l'exemple il faut copier C6:C8 et les transposer dans la dernière ligne non vide du fichier destination.
Je suis bien embarrassé. Merci pour votre aide.

nb: dans le fichier zippé il y a les 2 fichiers

Bonne journée.

edit: Omis de signaler que la requete ne doit s'executer qu'à condition que C6:C8 non vide.
 

Pièces jointes

  • Fichier Fermé.zip
    72.1 KB · Affichages: 12
Solution
Quelques explication aux format VBA§

VB:
Sub test()
'Mise en comparaison d'un range et d'un recorset!
Dim R As Range, I As Integer, FichierFerme As String
Set R = Sheets("Feuil2").Range("Y10:Y13")
R.Range("A1") = "toto"

FichierFerme = ThisWorkbook.Path & "\Classeur Destination.xlsx"
'--- Connexion Sans prise en compte des entêtes de colonnes ---
    With New ADODB.Connection
        .Provider = "Microsoft.Jet.OLEDB.\4.0"
        .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
            & FichierFerme & ";Extended Properties=""Excel 12.0;HDR=no;"""
            .Open
          
           With .Execute("select * from [Feuil1$A1:B5]  ")
            For I = 0 To .Fields.Count - 1
            Debug.Print...

dysorthographie

XLDnaute Accro
Bonjour,
Il y a 2 type de requête,des requêtes de sélection et des requêtes d'actions.

Il y a 3 grands type de requêtes d'actions,Ajout, modification, suppression !

Voici le modèle type d'une requête de sélection !
Code:
select table.champ1, table.champ2,etc
from table (S) inner join
Where champ(S)=valeur (s)'facultatif
Group by champs 'facultatif
Having champ(S)=valeur (s)'facultatif
Les requêtes d'actions
Code:
'ajout
Insert table 
(Champs)
Values (val1,val2,etc) 'notes que values peux être remplacé par une requête de sélection

'modification
Update table
Set champ(s)=valeure(s)
Where identifiant=valeurID

'Suppression n'existe pas pour EXCEL
Delete table
Where identifiant=valeurID
 
Dernière édition:

cp4

XLDnaute Barbatruc
Bonjour @dysorthographie ,

Je te suis très reconnaissant pour ce petit cours. On m'a toujours dit que le SQL était simple à apprendre. J'avoue que je ne lui ai pas donné beaucoup d'importance. Car à l'époque, j'avais des comptes à rendre et n'avais pas beaucoup de temps. Je n'utilisais Excel que pour faire des tableaux (récapitulatif ou rapport).
Là, j'ai tout mon temps mais pas beaucoup d'idée. C'est pour cela que j'ai pris l'exemple du fil invoqué dans mon 1er post.
Toute ma gratitude.

Bonne journée.
 

cp4

XLDnaute Barbatruc
Bonjour @patricktoulon ,

Ton code est parfait. J'apprécie beaucoup ton partage de connaissance.
Dis-moi comment fais-tu pour te souvenir de tous ces codes?

Tous mes remerciements.

Bonne journée.
 

cp4

XLDnaute Barbatruc
Bonjour @job75 ,

Merci beaucoup. Ton code est concis et clair. Je vais mettre un lien pour le demandeur de l'autre fil puisse en profiter.

Encore merci pour ton partage.

Bonne journée.
 

patricktoulon

XLDnaute Barbatruc
re
Bonjour cp4
Dis-moi comment fais-tu pour te souvenir de tous ces codes?

ben je mange beaucoup de omega 3 j'ai une bonne mémoire

non en fait quand je fait des codes je les rends génériques au plus possible (puisque la plus part du temps au départ c'est pour les autres que je les fait ) et je les stocke dans mon serveur dédié a vba et autre vb , j'ai 5 terra dispo pour stoker mes librairies de codes
c'est ça quand on est passionné
en ce qui concerne Ado et le SQL notre amis dysorthographie est vraiment fortiche
 

dysorthographie

XLDnaute Accro
SQL est un vrai langage dédié aux bases de données.

Il faut prendre ce langage au pied de la lettre ?
Une requête est une demande
{Select} Je sélectionne des champs
{From} en Provence d'une ou plusieurs tables qui sont liées par {inner join}
{Where} c'est le filtre !

Oui Patrick , pendant plus de 20 ans, mon travail a consisté à faire vivre des IHM en relation avec tout ce qui ressemble de près ou de loin à une base de données !
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…