Macro faisant <=> de SQL select X,Y,Z FROM Feuille1
Bjr,
Je ne connais pas Excel et souhaite remplir la feuille2 de mon fichier Excel en faisant l'équivalent d'une commande SQL:
Code:
SELECT B,F,G FROM Feuille1 WHERE B=VALEUR_INTEGER
Le but de cette commande est de remplir automatiquement ma feuille2.
Je pense qu'il faut utiliser une macro mais laquelle ?
Est-il possible de travailler directement avec une commande SQL qui lit ma feuille1 et renvoie le résultat sur la feuille 2.
Par avance Merci.
domikou
Copie sélective des lignes entre 2 feuilles Excel via Macro
Bjr et Merci pour vos réponses.
J'ai écrit une macro (Ma première macro). Elle fait le travail attendu.
Je la livre pour information et autres débutants.
Cordialement.
domikou
Attribute VB_Name = "Module1"
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| Sub Macro1()
' Variables nom des feuilles à changer
NomFeuilleSource = "Feuil1"
NomFeuilleCible = "Feuil2"
' Variables
NuméroColonneAEvaluer = 2
ValeurATester = 10
'''''''''''''''''''''''''''''''''''''''''''''''''
'Macro
MsgBox "Macro: début de programme."
'Sheets("NomDeLaFeuille").Select
Sheets(NomFeuilleSource).Select
MsgBox "La feuille source est : " & NomFeuilleSource & Chr$(13) & "La feuille cible est : " _
& NomFeuilleCible & Chr$(13)
'Initialisation des Variables
iNombreLigneCopiees = 0
NumCol = 1
'Selection d 'une cellule
Range("A1").Select
'Parcour de toutes les lignes de la feuille source
iLigne = 1
Sheets(NomFeuilleSource).Select
While Not Range("A" & iLigne & "").Value = ""
' Si la colonne a evaluer sur cette ligne remplie les conditions
' Alors on copie la ligne
If (Sheets(NomFeuilleSource).Cells(iLigne, NuméroColonneAEvaluer) > ValeurATester) Then
MsgBox "Une ligne est sélectionnée pour la copie"
'Parcour de toutes les colonnes de cette ligne
iColonne = 1
While Sheets(NomFeuilleSource).Cells(iLigne, iColonne) <> ""
Sheets(NomFeuilleCible).Cells(iNombreLigneCopiees + 1, iColonne) = Sheets(NomFeuilleSource).Cells(iLigne, iColonne)
iColonne = iColonne + 1
Wend
' Mise a jour de la quantite des lignes copiees
iNombreLigneCopiees = iNombreLigneCopiees + 1
End If
iLigne = iLigne + 1
Wend
'Macro for dummies
MsgBox "Macro: fin de programme."
End Sub |