Copie données VBA

Tortua Messages postés 4 Statut Membre -  
 Tortua -
Bonjour,
Voici un code qui me permet de copier des données qui sont dans une feuille qui se nomme "Copie GC" vers une feuille qui se nomme "Base de données client". Les données sont copié en B2 mais le probleme c'est que j aimerais que les données soit copié en B23 et non en B2.
Merci de m'aider car je n y arrive pas. Voici le code:

Sub miseàjourBD()

Application.ScreenUpdating = False

Dim x As Long, cell As Object
'mise à jours des données
Sheets("Base de données client").Range("B2:I65535").Select
Selection.ClearContents
Sheets("Copie GC").Select
'on copie les clients de copie GC
For x = 2 To Range("I65535").End(xlUp).Row
If Sheets("Copie GC").Range("B" & x).Value <> "" Then

'nom client
Sheets("Base de données client").Range("B65536").End(xlUp).Offset(1, 1).Value = Range("C" & x).Value
' catégorie client
Sheets("Base de données client").Range("B65536").End(xlUp).Offset(1, 2).Value = Range("D" & x).Value
' mail client
Sheets("Base de données client").Range("B65536").End(xlUp).Offset(1, 3) = Range("E" & x)
' téléphone client
Sheets("Base de données client").Range("B65536").End(xlUp).Offset(1, 4).Value = Range("F" & x).Value
' chiffre d'affaires
Sheets("Base de données client").Range("B65536").End(xlUp).Offset(1, 5).Value = Range("G" & x).Value
' département
Sheets("Base de données client").Range("B65536").End(xlUp).Offset(1, 6).Value = Range("H" & x).Value
' qualité client
Sheets("Base de données client").Range("B65536").End(xlUp).Offset(1, 7).Value = Range("i" & x).Value
' code client
Sheets("Base de données client").Range("B65536").End(xlUp).Offset(1, 0).Value = Range("B" & x).Value
End If
Next x
Sheets("Base de données client").Select
Range("B23:I65535").Select
For Each cell In Selection
If cell <> "" Then
ActiveSheet.Hyperlinks.Add Anchor:=cell, Address:= _
"mailto:" & cell.Value
Else
End If
Next cell
Range("A1").Select
Cancel = True
End Sub

Cordialement
Tortua

3 réponses

  1. Ivan-hoe Messages postés 433 Date d'inscription   Statut Membre Dernière intervention   310
     
    Salut Tortua,
    dans l'absolu et pour faire très simple, si tu rajoutes Range("B22").Value = "..." à l'endroit indiqué, ça va écrire tes données en B23 et non plus en B2.

    Sub miseàjourBD()
    Application.ScreenUpdating = False
    Dim x As Long, cell As Object
    'mise à jours des données
    Sheets("Base de données client").Range("B2:I65535").Select
    Selection.ClearContents
    Range("B22").Value = "..." ' <---- ajouter cette ligne
    Sheets("Copie GC").Select
    'etc...

    Mais est-ce que ça résout entièrement ton pb ? A suivre...
    0
  2. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bojour,
    petite simplification de la 1ère partie de ton code..
    Sub miseàjourBD()
    Dim x As Long, cell As Object, Feuil As Object
    Dim e As Long, i As Integer
        Application.ScreenUpdating = False
        Set Feuil = Sheets("Base de données client")
        Feuil.Select
        Cells.Select
        Selection.Clear
        Sheets("Copie GC").Select
        e = 23
        For x = 2 To Range("I65535").End(xlUp).Row
            If Cells(x, 2).Value <> "" Then
                For i = 1 To 8
                    Feuil.Cells(e, i).Value = Cells(x, i + 1).Value
                Next i
                e = e + 1
            End If
        Next x
        
    Application.ScreenUpdating = True
    End Sub

    A+
    0
  3. Tortua
     
    Merci beaucoup pour vos réponses, je vais regarder à cela.
    J'aimerais également que les données de ma feuille "Copie GC" qui ne sont pas dans ma feuille "Base de données client" aparaissent en gras. En fait je veux que les nouveaux client soit différencié des autres car quand je copie mes données, j'ai des données qui sont déja dans la feuille "Base de données client" (il n y a que le chiffre d affaire qui change mais code client reste le même) mais j'ai des données qui sont nouvelles pour les nouveaux clients et je voudrais qu'il apparaissent en gras ou du moins que les nouveaux clients soient diférencies des anciens en fait mais je ne sais pas comment m y prendre du tout pour faire cela. Merci de m'éclairer.
    Cordialement
    Tortua et encore merci pour vos réponses.
    0