Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/01/2012, 11h53   #1
Nouveau Membre du Club
 
Inscription : octobre 2011
Messages : 106
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 106
Points : 38
Points : 38
Par défaut Problème avec suppr/décaler

Bonjour à tous,

J'ai un code qui fonctionne à peu prés comme je veux, le seul problème
c'est que quand j'effectue le
Code :
selection.Delete Shift:=xlUp
Il m'efface les formules de contenu dans certaines colonnes alors que si je fais la manip en manuel il me décale la selection avec les formules ?
C'est dommage c'était presque parfait...
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
Sub Recup()
Dim rep As Boolean
If Not InitFait Then init
If Ouvert(NcWbs) Then Wbsource.Close
Workbooks.Open Filename:=NcWbs
 
Set Wbdest = ThisWorkbook
Set Wbsource = Workbooks("CC2011T.xlsx")
Set pilote = Workbooks("CC2011T.xlsx").Worksheets("Pilote")
pilote.Activate
 
If pilote.Range("A4").Value = "" Then
 MsgBox ("Il n'y a pas de nouveaux devis")
 Wbsource.Close
 Exit Sub
End If
 
    For ligne = 4 To 10000
    If IsEmpty(Cells(ligne, 1)) Then Exit For
    Next ligne
 
acop = ligne - 1
 
Set selection = Range(Cells(4, 1), Cells(acop, 48))
selection.Select
selection.Cut
 
Wbdest.Worksheets("CC2012").Activate
 
For ligne = 4 To 10000
 
    If IsEmpty(Cells(ligne, 1)) Then Exit For
    Next ligne
 
ThisWorkbook.Worksheets("CC2012").Cells(ligne, 1).Activate
 
ActiveSheet.Paste
 
Wbsource.Activate
selection.Delete Shift:=xlUp  ' c'est la que ça bloque
Wbsource.Close
Wbdest.Save
 
 
End Sub
Un grand merci à ceux qui prennent le temps de répondre.
tompom3108 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 12h41   #2
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Bonjour,

Citation:
Il m'efface les formules de contenu dans certaines colonnes
Est-ce que tu peux donner un exemple, j'ai du mal à comprendre...
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 13h29   #3
Nouveau Membre du Club
 
Inscription : octobre 2011
Messages : 106
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 106
Points : 38
Points : 38
Bonjour DanielC,

Je vais essayer d'être clair. Je vais prendre l'exemple de la colonne E
J' ai une formule sur cette colonne. La barre de titre va de ligne 1 à 3 danc le "tableau" commence ligne 4.
Donc E4 = B4*C4 par exemple.

Or je me sers de ce classeur comme plaque tournante de donnée (ordi en réseaux). Les lignes de données peuvent s'accumuler de 4 à x
Le classeur de destination sur lequel il y a la macro recup() doit récupérer ces données.

Donc j'ai utilisé cut le problème c'est que cut m'enlève les formules du coup j'ai rajouter delete shift:=xlup pour remplacer les lignes coupées qui ont perdu les formules par celles dessous qui les ont encore. Manuellement ça fonctionne. Peut être je devrais juste faire copier et clear.contents je vais essayer.

Bon Clearcontents c'est la même chose ...
tompom3108 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 14h10   #4
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Tu dois avoir une erreur sur la ligne suivante :

Code :
Set Selection = Range(Cells(4, 1), Cells(acop, 48))
Mets plutôt :

Code :
Range(Cells(4, 1), Cells(acop, 48))
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/01/2012, 16h25   #5
Nouveau Membre du Club
 
Inscription : octobre 2011
Messages : 106
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 106
Points : 38
Points : 38
Par défaut ok

Bon ça roule je comprends pas trop pourquoi mais l'essentiel c'est que ça marche
Merci beaucoup Daniel.C
tompom3108 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h30.


 
 
 
 
Partenaires

Hébergement Web