Jonathan1986
XLDnaute Nouveau
Bonjour à tous bonjour le forum,
Je fais appel au forum car je suis débutant en vba et ne suis pas assez calé pour résoudre ce problème ...
J'ai une macro qui, avant l'exportation de l'onglet en cours va modifier les données dans une BDD. S'il s'agit de l'onglet Thomas, je souhaite qu'il me modifie la ligne de la BDD ou dans la première colonne il y a Thomas. Le problème c'est que je ne sais pas comment identifier cette ligne et actiellement le code me copie les données sur des centaines de lignes.
Voici le code :
Si quelqu'un a un peu de temps pour trouver une idée ce serait génial
Sub enre()
Dim M As String
Dim Lg As Integer
Dim Response As Byte
Dim L As String
Dim sh As Worksheet
M = Workbooks("DEVIS CERIC 1.xlsm").ActiveSheet.Range("I20").Text
Response = MsgBox(" Vous êtes sur le point d'enregistrer votre Proforma dans la base de données et dans un fichier indépendant, souhaitez-vous continuer ? ", vbCritical + vbOKCancel, T)
If Response = 1 Then
Application.ScreenUpdating = False
For Lg = ActiveSheet.UsedRange.Rows.Count To 2 Step -1
If Sheets("BDDD").Range("A" & Lg) = y Then
Sheets("BDDD").Range("D" & Lg) = ActiveSheet.Range("Z57").Text
Sheets("BDDD").Range("E" & Lg) = ActiveSheet.Range("Z59").Text
Sheets("BDDD").Range("F" & Lg) = ActiveSheet.Range("H23").Text
Sheets("BDDD").Range("G" & Lg) = ActiveSheet.Range("I29").Text
Sheets("BDDD").Range("H" & Lg) = ActiveSheet.Range("H7").Text
Sheets("BDDD").Range("I" & Lg) = ActiveSheet.Range("J21").Text
Sheets("BDDD").Range("J" & Lg) = ActiveSheet.Range("U20").Text
Sheets("BDDD").Range("K" & Lg) = ActiveSheet.Range("U11").Text
Sheets("BDDD").Range("L" & Lg) = ActiveSheet.Range("U13").Text
Sheets("BDDD").Range("M" & Lg) = ActiveSheet.Range("U14").Text
Sheets("BDDD").Range("N" & Lg) = ActiveSheet.Range("U19").Text
Sheets("BDDD").Range("O" & Lg) = ActiveSheet.Range("U21").Text
Sheets("BDDD").Range("P" & Lg) = ActiveSheet.Range("U22").Text
Sheets("BDDD").Range("Q" & Lg) = ActiveSheet.Range("J57").Text
Sheets("BDDD").Range("R" & Lg) = ActiveSheet.Range("L57").Text
Sheets("BDDD").Range("S" & Lg) = ActiveSheet.Range("J58").Text
Sheets("BDDD").Range("T" & Lg) = ActiveSheet.Range("L58").Text
Sheets("BDDD").Range("V" & Lg) = ActiveSheet.Range("V51").Text
Sheets("BDDD").Range("W" & Lg) = ActiveSheet.Range("E59").Text
Sheets("BDDD").Range("AI" & Lg) = ActiveSheet.Range("Y49").Text
Sheets("BDDD").Range("AJ" & Lg) = ActiveSheet.Range("Y49").Text
Sheets("BDDD").Range("AK" & Lg) = ActiveSheet.Range("Y52").Text
Sheets("BDDD").Range("AL" & Lg) = ActiveSheet.Range("Y53").Text
End If
Next Lg
Workbooks.Add
ChDir "C:\Users\Dropbox\"
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\Dropbox\" & M & ".xlsx" _
, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveWorkbook.Save
Workbooks("DEVIS 1.xlsm").Sheets(2).Move After:=Workbooks(M & ".xlsx").Sheets(1)
'ActiveWorkbook.Save
'ActiveWorkbook.Close
'Workbooks("DEVIS 1.xlsm").Sheets(1).Activate
'MsgBox "Opération accomplie", vbInformation, T
'Si Réponse Annulation on envoie un message et on a rien fait
Else: MsgBox "Opération annulée", vbInformation, T
End If
End Sub
Merci d'avance ! Bonne soirée
Je fais appel au forum car je suis débutant en vba et ne suis pas assez calé pour résoudre ce problème ...
J'ai une macro qui, avant l'exportation de l'onglet en cours va modifier les données dans une BDD. S'il s'agit de l'onglet Thomas, je souhaite qu'il me modifie la ligne de la BDD ou dans la première colonne il y a Thomas. Le problème c'est que je ne sais pas comment identifier cette ligne et actiellement le code me copie les données sur des centaines de lignes.
Voici le code :
Si quelqu'un a un peu de temps pour trouver une idée ce serait génial
Sub enre()
Dim M As String
Dim Lg As Integer
Dim Response As Byte
Dim L As String
Dim sh As Worksheet
M = Workbooks("DEVIS CERIC 1.xlsm").ActiveSheet.Range("I20").Text
Response = MsgBox(" Vous êtes sur le point d'enregistrer votre Proforma dans la base de données et dans un fichier indépendant, souhaitez-vous continuer ? ", vbCritical + vbOKCancel, T)
If Response = 1 Then
Application.ScreenUpdating = False
For Lg = ActiveSheet.UsedRange.Rows.Count To 2 Step -1
If Sheets("BDDD").Range("A" & Lg) = y Then
Sheets("BDDD").Range("D" & Lg) = ActiveSheet.Range("Z57").Text
Sheets("BDDD").Range("E" & Lg) = ActiveSheet.Range("Z59").Text
Sheets("BDDD").Range("F" & Lg) = ActiveSheet.Range("H23").Text
Sheets("BDDD").Range("G" & Lg) = ActiveSheet.Range("I29").Text
Sheets("BDDD").Range("H" & Lg) = ActiveSheet.Range("H7").Text
Sheets("BDDD").Range("I" & Lg) = ActiveSheet.Range("J21").Text
Sheets("BDDD").Range("J" & Lg) = ActiveSheet.Range("U20").Text
Sheets("BDDD").Range("K" & Lg) = ActiveSheet.Range("U11").Text
Sheets("BDDD").Range("L" & Lg) = ActiveSheet.Range("U13").Text
Sheets("BDDD").Range("M" & Lg) = ActiveSheet.Range("U14").Text
Sheets("BDDD").Range("N" & Lg) = ActiveSheet.Range("U19").Text
Sheets("BDDD").Range("O" & Lg) = ActiveSheet.Range("U21").Text
Sheets("BDDD").Range("P" & Lg) = ActiveSheet.Range("U22").Text
Sheets("BDDD").Range("Q" & Lg) = ActiveSheet.Range("J57").Text
Sheets("BDDD").Range("R" & Lg) = ActiveSheet.Range("L57").Text
Sheets("BDDD").Range("S" & Lg) = ActiveSheet.Range("J58").Text
Sheets("BDDD").Range("T" & Lg) = ActiveSheet.Range("L58").Text
Sheets("BDDD").Range("V" & Lg) = ActiveSheet.Range("V51").Text
Sheets("BDDD").Range("W" & Lg) = ActiveSheet.Range("E59").Text
Sheets("BDDD").Range("AI" & Lg) = ActiveSheet.Range("Y49").Text
Sheets("BDDD").Range("AJ" & Lg) = ActiveSheet.Range("Y49").Text
Sheets("BDDD").Range("AK" & Lg) = ActiveSheet.Range("Y52").Text
Sheets("BDDD").Range("AL" & Lg) = ActiveSheet.Range("Y53").Text
End If
Next Lg
Workbooks.Add
ChDir "C:\Users\Dropbox\"
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\Dropbox\" & M & ".xlsx" _
, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveWorkbook.Save
Workbooks("DEVIS 1.xlsm").Sheets(2).Move After:=Workbooks(M & ".xlsx").Sheets(1)
'ActiveWorkbook.Save
'ActiveWorkbook.Close
'Workbooks("DEVIS 1.xlsm").Sheets(1).Activate
'MsgBox "Opération accomplie", vbInformation, T
'Si Réponse Annulation on envoie un message et on a rien fait
Else: MsgBox "Opération annulée", vbInformation, T
End If
End Sub
Merci d'avance ! Bonne soirée
Dernière édition: