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 14/11/2011, 15h58   #1
Invité régulier
 
Homme Rafael
Étudiant
Inscription : novembre 2011
Messages : 8
Détails du profil
Informations personnelles :
Nom : Homme Rafael
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : novembre 2011
Messages : 8
Points : 5
Points : 5
Par défaut Décaler une colonne sur une autre feuille sous condition

Bonjour à toutes et à tous,

je suis tout nouveau sur le forum et je vous appelle à l'aide, je suis actuellement entrain de créer un petit fichier avec certainnes parties de VBA, mais là, je bloque.

Ce que je souhaite faire c'est de copier les cellules d'une colonne si elles sont remplies, mais sur une autre feuille. je sais le faire sur la même feuille ou alors les copier sur une autre feuille mais alors je n'arrive pas à integrer la condition.

Voici l'un des codes que j'ai tenté.

Code :
1
2
3
4
5
6
7
8
9
Dim cell As Range
 
For Each cell In Range("A1:A30")
 
                          If cell <> "" Then
 
cell.Offset(0, Feuil3 !Range("k2")) = cell.Value
 
              End If
et j'avais déjà tenté le copié/collé, mais sans plus de succès:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Dim cell As Range
 
For Each cell In Range("A1:A30")
 
                         If cell <> "" Then
 
                          cell.Select
 
                         Selection.Copy
 
                         Sheets("Feuil3").Select
 
                         Range("E6").Select
 
                         ActiveSheet.Paste
 
                        End If
 
Next
 
End Sub
Voila mon problème, je suis un petit nouveau en informatique et vba, donc il y a certains trucs que j'ai pas encore compris. Si quelqu'un avait la gentillesse de me débloquer, ca serait cool.

Merci par avance.
rafspain77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 16h07   #2
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 869
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 869
Points : 1 837
Points : 1 837
Je crois que tu fais une mauvaise utilisation de la fonction offset voici ce que tu pourrais faire :
Code :
1
2
3
4
5
6
7
8
9
Dim cell As Range
dim i as Integer
i = 1
For Each cell In Range("A1:A30")
  If cell.Value <> "" Then
    Range("Feuil3!K2").Offset(i-1, 0).Value = cell.Value
    i=i+1
  End If
Next cell
Essaie-ça et si ça ne fait pas exactement ce que tu veux, dis-le nous.
ZebreLoup est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 16h20   #3
Membre Expert
 
Homme
Retraité
Inscription : avril 2011
Messages : 692
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : avril 2011
Messages : 692
Points : 1 443
Points : 1 443
Bonjour,

Si tu souhaites copier tes cellules au même emplacement dans la feuille 2

Code :
1
2
3
4
5
6
7
8
Sub Test()
Dim cel As Range
For Each cel In Worksheets("Feuil1").Range("A1:A30")
    If cel <> "" Then
        Worksheets("Feuil2").Range("K" & cel.Row) = cel.Value
    End If
Next cel
End Sub
Cordialement.
gFZT82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 16h33   #4
Invité régulier
 
Homme Rafael
Étudiant
Inscription : novembre 2011
Messages : 8
Détails du profil
Informations personnelles :
Nom : Homme Rafael
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : novembre 2011
Messages : 8
Points : 5
Points : 5
Tout d'abors merci pour la rapidité d'action,

et c'est à peu près le bon résultat, le seul problème est que je souhaite conservé la mise en forme de ma collonne et donc ne pas suprimé la case "".

Je souhaite utilisé ces valeurs dans un graphique, et j'utilise vba pour remplacer les cellules remplies par "" par un vide pour pouvoir ensuite les interpollées dans mon graphique. pour cela les valeurs doivent être en face de leur abscisse et donc ne doivent pas être "écrasé".

Suis-je clair..??

Merci encore.

Merci à vous deux, c'est au top,

merci gFZT82 c'est exactement ce que je veux,

et dire que je cherche depuis ce matin...!


Merci encore à vous deux.
rafspain77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 16h37   #5
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 869
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 869
Points : 1 837
Points : 1 837
Pas de problème. Effectivement je n'avais pas compris que tu voulais garder les blancs. Par contre, du coup tu pourrais garder ta première plage de cellules pour faire ton graphique et juste faire un petit :
Code :
1
2
3
4
5
6
7
8
Sub Test()
Dim cel As Range
For Each cel In Worksheets("Feuil1").Range("A1:A30")
    If cel = "" Then
        cel.Clear
    End If
Next cel
End Sub
ZebreLoup est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 16h51   #6
Invité régulier
 
Homme Rafael
Étudiant
Inscription : novembre 2011
Messages : 8
Détails du profil
Informations personnelles :
Nom : Homme Rafael
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : novembre 2011
Messages : 8
Points : 5
Points : 5
je vais peut être exagérer, mais en fait un tout petit détail, si je veux que dans ma feuil2 ca commence à se coller en K6, que dois-je faire.

Merci.
rafspain77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 17h09   #7
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 869
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 869
Points : 1 837
Points : 1 837
Essaie de bien comprendre le code proposé par gFZT82, tu pourras l'adapter beaucoup plus facilement ensuite.
ZebreLoup est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 17h15   #8
Invité régulier
 
Homme Rafael
Étudiant
Inscription : novembre 2011
Messages : 8
Détails du profil
Informations personnelles :
Nom : Homme Rafael
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : novembre 2011
Messages : 8
Points : 5
Points : 5
Ok cette fois ci c'est parfais merci beaucoup à tout les deux.

Je reviendrais plus souvent au lieu de resté bloqué.

Merci encore.
rafspain77 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 09h40.


 
 
 
 
Partenaires

Hébergement Web