Copie données VBA

Fermé
Tortua Messages postés 4 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 19 juin 2008 - 13 mai 2008 à 23:48
 Tortua - 14 mai 2008 à 17:48
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
A voir également:

3 réponses

Ivan-hoe Messages postés 433 Date d'inscription dimanche 17 février 2008 Statut Membre Dernière intervention 17 octobre 2008 309
14 mai 2008 à 11:14
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
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
14 mai 2008 à 11:57
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
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