Modifier les données sur la ligne correspondant à la valeur de la cellule x

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 :D

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:

Robert

XLDnaute Barbatruc
Repose en paix
Re : Modifier les données sur la ligne correspondant à la valeur de la cellule x

Bonsoir Jonathan, bonsoir le forum,

Du code sans le fichier qui va avec c'est souvent imbuvable et difficile à faire tourner car on n'a pas les éléments qui correspondent à l'environnement de ton problème. Tu as donc mois de chance d'obtenir de l'aide...
J'ai parcouru ton code et repéré cette anomalie :
Code:
If Sheets("BDDD").Range("A" & Lg) = y Then
La variable y n'est ni déclarée, ni définie nulle part. À quoi correspond-t-elle ?
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa