Macro dynamique
Résolu/Fermé
senecartour
Messages postés
324
Date d'inscription
dimanche 12 mai 2013
Statut
Membre
Dernière intervention
29 octobre 2020
-
19 nov. 2015 à 21:31
senecartour Messages postés 324 Date d'inscription dimanche 12 mai 2013 Statut Membre Dernière intervention 29 octobre 2020 - 26 nov. 2015 à 15:13
senecartour Messages postés 324 Date d'inscription dimanche 12 mai 2013 Statut Membre Dernière intervention 29 octobre 2020 - 26 nov. 2015 à 15:13
A voir également:
- Macro dynamique
- Tableau croisé dynamique - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Liste déroulante dynamique excel - Guide
- Macro logiciel - Télécharger - Organisation
2 réponses
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
22 nov. 2015 à 09:04
22 nov. 2015 à 09:04
Bonjour
Ceci peut-être
Ceci peut-être
Sub Insertion() Dim DerLi, DerCo As Integer DerLi = ThisWorkbook.Sheets("Donnees Excel").Range("A" & Rows.Count).End(xlUp).Row DerCo = ThisWorkbook.Sheets("Donnees Excel").Range("A2").End(xlToRight).Column sep = "," Champs1 = "" For i = 1 To DerCo If Cells(1, i + 1) = "" Then Exit For Champs1 = Champs1 & sep & Cells(1, i + 1) Next i Champs1 = Right(Champs1, Len(Champs1) - 1) Champs2 = "" For i = 1 To DerCo Champs2 = Champs2 & sep & Cells(2, i) Next i Champs2 = Right(Champs2, Len(Champs2) - 1) Valeurs = "" ReDim Valeur(DerLi, DerCo) As String For i = 3 To DerLi For j = 1 To DerCo Valeur(i, j) = Cells(i, j) Valeurs = Valeurs & sep & Valeur(i, j) Next j Valeurs = Right(Valeurs, Len(Valeurs) - 1) Sheets("Donnees sql").Cells(i, 1).Value = "INSERT INTO " & Champs1 & " (" & Champs2 & ")" & " VALUES" & " ('" & Valeurs & "');" Valeurs = "" Next i MsgBox ("Vos données ont été converties au format sql") Sheets("Donnees sql").Select End SubCdlt
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
25 nov. 2015 à 05:53
25 nov. 2015 à 05:53
Bonjour
Dans votre exemple, la dernière valeur ne devrait-elle pas être entourée d'apostrophe elle aussi?
A tester
Cdlt
Dans votre exemple, la dernière valeur ne devrait-elle pas être entourée d'apostrophe elle aussi?
Sub Insertion() Dim DerLi, DerCo As Integer DerLi = ThisWorkbook.Sheets("Donnees Excel").Range("A" & Rows.Count).End(xlUp).Row DerCo = ThisWorkbook.Sheets("Donnees Excel").Range("A2").End(xlToRight).Column sep = "," Champs1 = "" For i = 1 To DerCo If Cells(1, i + 1) = "" Then Exit For Champs1 = Champs1 & sep & Cells(1, i + 1) Next i Champs1 = Right(Champs1, Len(Champs1) - 1) Champs2 = "" For i = 1 To DerCo Champs2 = Champs2 & sep & Cells(2, i) Next i Champs2 = Right(Champs2, Len(Champs2) - 1) Valeurs = "" ReDim Valeur(DerLi, DerCo) As String For i = 3 To DerLi For j = 1 To DerCo Valeurs = Valeurs & sep & "'" & Replace(Cells(i, j), "'", """") & "'" Next j Valeurs = Right(Valeurs, Len(Valeurs) - 1) Sheets("Donnees sql").Cells(i, 1).Value = "INSERT INTO " & Champs1 & " (" & Champs2 & ")" & " VALUES" & " (" & Valeurs & ");" Valeurs = "" Next i MsgBox ("Vos données ont été converties au format sql") Sheets("Donnees sql").Select End Sub
A tester
Cdlt
senecartour
Messages postés
324
Date d'inscription
dimanche 12 mai 2013
Statut
Membre
Dernière intervention
29 octobre 2020
3
26 nov. 2015 à 15:13
26 nov. 2015 à 15:13
Bonjour Franchie83,
Je vais tester et reviens vers vous dès que possible.
Merci encore pour votre disponibilité.
Je vais tester et reviens vers vous dès que possible.
Merci encore pour votre disponibilité.
22 nov. 2015 à 13:41
Merci beaucoup, c'est exactement ce que je voulais.
Merci et bon fin de WE.
24 nov. 2015 à 21:30
J'ai essayé d'insérer les données en base mais il reste quelques détails à ajouter dans la macro pour que les données puissent s'intégrer.
En effet deux choses sont à prendre en compte:
-Au niveau de la partie Value, les données doivent aussi être entourées par des ' '.
-Lorsqu'on a une apostrophe dans, on doit remplacer l'apostrophe par deux cotes ''.
Voici l'exemple de résultat attendu:
INSERT INTO PAYS (Pays,Capital,Population,Entrprise,CA) VALUES ('France','Paris','60000000','L''OREAL,20');
INSERT INTO ASSET (Pays,Capital,Population,Entrprise,CA) VALUES ('Allemagne','Berlin','70000000','L''ESCO,34');
Je vous joins également, le fichier avec la macro et l'exemple du résultat attendu.
https://www.cjoint.com/c/EKyuEqg1fuG
Je vous serais très reconnaissant si vous voulez bien m'aider à résoudre le problème.